programing

Custom UITableViewCell에서 자동 레이아웃이 무시됨

oldcodes 2023. 9. 6. 22:18
반응형

Custom UITableViewCell에서 자동 레이아웃이 무시됨

셀이 높이를 계산하는 데 필요한 수직적 요소를 포함하여 모든 요소에 대한 제약 조건을 설정했음에도 불구하고 자동 배치는 무시되는 것처럼 보입니다. 모든 셀이 압축됩니다.

다음은 스토리보드의 결과 및 제약 조건에 대한 스크린샷입니다.

enter image description here

enter image description here

TableView를 보유한 VC에서 ViewDidLoad의 코드는 다음과 같습니다.

tableView.estimatedRowHeight = 120.0
tableView.rowHeight = UITableViewAutomaticDimension

두 번째 줄에 주석을 달면 높이가 120.0인 셀이 제공되지만 자동 레이아웃도 무시됩니다.


갱신하다

인터페이스를 단순화하기 위해 제약 조건으로 다음과 같은 단일 레이블을 남겼습니다.

  • 공간을 슈퍼뷰로 유도
  • 감시할 최상위 공간
  • 고정폭 및 높이(100 & 100)
  • 셀의 높이를 결정하기 위한 모든 수직 제약 조건이 있는지 확인하기 위한 하단 공간부터 용기 여백까지

이렇게 단순화된 인터페이스를 사용하면 자동 배치가 여전히 고려되지 않으므로 문제가 제대로 설정되지 않은 제약 조건에서 발생한 것이 아님을 알 수 있습니다.

Size Inspector(크기 검사기)에서 행 높이가 120으로 설정되고 Custom(사용자 정의)이 선택됩니다.셀에 올바른 사용자 지정 클래스가 있고 셀 재사용 식별자가 정확합니다.

프로토타입 셀과 셀의 UIView 모두 IB에서 사용자 정의 셀 클래스가 주어졌기 때문에 자동 레이아웃이 무시되었습니다.

UIView를 다시 UIView 클래스로 설정하면 문제가 해결됩니다.

just to be über clear

문제는 다음을 구현하고 있다는 것입니다.

func tableView(_ tableView: UITableView, heightForRowAt indexPath: 
IndexPath) -> CGFloat {

 return x
}

테이블 뷰가 셀에 대한 자동 높이를 계산하려면 이 기능을 제거해야 합니다.

언급URL : https://stackoverflow.com/questions/43319921/autolayout-is-ignored-in-custom-uitableviewcell

반응형