2016-07-31 2 views
3

screen 높이의 40 %에 해당하는 imageSlider가 포함 된 tableViewCell이 있습니다.AutoLayout UITableViewCell TableView/Screen의 배수 높이

어떻게 든 자동 레이아웃이 가능합니까? 셀을 tableView에 추가 한 후에 셀의 높이가 이미 계산되었으므로 추가 된 모든 제약 조건은 셀 높이에 대해 무시됩니다.

나는 heightForRow를 구현하고 정확한 값을 반환 할 수 있었지만, AutoLayout만으로도 이것을 달성 할 수 있을지 궁금해하고 있었습니까?

cell.imageSlider.heightAnchor.constraint(equalTo: tableView.heightAnchor, multiplier: 0.4) 

답변

0

이미지 슬라이더에 높이 제한을 추가하고 셀에 각각의 iboutlet을 선언하십시오. View.bounds.size.height/60.0에 상수 값을 설정하십시오. 작동하는지 알려주세요.

+0

바운드가 변경 될 때마다 수동으로 상수를 업데이트해야하므로 ... – warly

+0

슬라이더가 셀 내부에 있으므로 자동으로 바운딩 된 뷰를 기반으로 크기를 조정하지 않기 때문에 찾고있는 것이 아닙니다. 해당 코드를 cellForRowAtIndexPath 또는 셀 클래스의 awakfromNib 메서드에 둘 수 있습니다. –

+0

보기 크기의 60 배가되므로 코드 (view.bounds.size.height/60)가 작동하지 않습니다. bounds.height * 0.4는 작동하지만 회전 변경시 ​​자동으로 업데이트되지 않습니다. 그래서 tableView (_ tableView : UITableView, heightForRowAt indexPath : IndexPath) -> CGFloat가 이것을위한 더 좋은 장소 인 것 같습니다. – warly

0

이미지 슬라이더에 높이 제한을 추가하고 셀에 각각의 iboutlet을 선언하십시오. view.bounds.size.height * 0.4에 상수 값을 설정하십시오. superView (귀하의 경우 TableViewCell)에서 imageSlider의 아래쪽 제약 &을 설정하십시오. 작동하는지 알 수 있습니다. 또한, 코드

- (void)viewWillLayoutSubviews{ 
    [self.imageSlider layoutIfNeeded]; 
    //OR 
    [cell layoutIfNeeded]; 
} 

layoutIfNeeded 자동으로 제약을 업데이트합니다 다음을 추가합니다.

+0

@Deepak Kumar와 동일한 제안입니다 (아래 참조). 높이가 변하는 view.bounds에 적응하지 않을 것입니다. – warly

관련 문제