code

사용자 정의 UITableViewCell에서 자동 레이아웃이 무시됩니다.

codestyles 2020. 10. 31. 09:44
반응형

사용자 정의 UITableViewCell에서 자동 레이아웃이 무시됩니다.


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

다음은 스토리 보드의 결과 및 제약 조건의 스크린 샷입니다. 여기에 이미지 설명 입력

여기에 이미지 설명 입력

tableView를 보유하는 VC에서 viewDidLoad 의 코드는 다음과 같습니다.

tableView.estimatedRowHeight = 120.0
tableView.rowHeight = UITableViewAutomaticDimension

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

감사


최신 정보

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

  • 슈퍼 뷰로 이어지는 공간
  • 슈퍼 뷰를위한 최고의 공간
  • 고정 너비 및 높이 (100 및 100)
  • 셀에 높이를 결정하는 모든 수직 제약 조건이 있는지 확인하기 위해 하단 공간에서 컨테이너 여백까지

그리고이 단순화 된 인터페이스를 사용하면 자동 레이아웃이 여전히 고려되지 않습니다. 이는 문제가 잘못 설정된 제약에서 비롯된 것이 아님을 암시합니다.

Size Inspector에서 행 높이는 120으로 설정되고 Custom이 선택되어 있습니다. 셀에 올바른 사용자 지정 클래스가 있고 셀 재사용 식별자가 정확합니다.


업데이트 : 솔루션을 찾았습니다.

이것은 간단한 실수였습니다. 아래 내 대답을 참조하십시오.


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

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

그냥 명확하게


문제는 당신이 구현하고 있다는 것입니다.

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

 return x
}

tableview가 셀의 자동 높이를 계산하려면이 함수를 제거해야합니다.

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

반응형