2017-12-17 36 views
0

nib 파일에서로드 된 UITableViewCell을 구성하려고합니다. 셀에는 왼쪽에 UIImageView, 오른쪽에 UILabel의 두 요소가 있습니다.UITableViewCell 자동 레이아웃 문제 (iOS 11, Xcode 9.2)

높이 : 100 태평양 표준시 폭 :

Custom UITableViewCell

있는 UIImageView는 다음과 같은 제약이있다 = 10pt로를 수퍼 100 태평양 표준시 선도 공간, 최고의 공간 = 10 수퍼하기 = 10 Pt 및 바닥 공간을 수퍼하기 있는 UIImage에서 공간을 선도

: PT

UILabel의 다음과 같은 제약이 있습니다 (I이 바닥 공간의 제약 조건을 설정하지 않은 경우, 세포가 제대로 이미지를 표시하지 않습니다 그리고 그들은 모두 엉망이다) 보기 = 10pt, 수퍼 뷰 수퍼 스페이스 = 10pt, 수퍼 뷰 수퍼 스페이스 = 10pt 및 수퍼 스페이스 수퍼 뷰 수 = 10pt

UILabel의 줄 수는 0으로 설정되고 테이블의 예상 행 높이는 200pt로 설정됩니다. 행 높이는 UITableViewAutomaticDimension으로 설정됩니다.

은 내가 UILabel의 모든 라인 (따라서 라인의 수를 0으로 설정) 셀은 최대 높이로 확대되고있다 그러나 레이블 높이

동적으로 확장하는 셀에 맞게 원하는 100 픽셀 (UIImageView의 높이) 및 레이블 내용이 잘립니다.

내가 뭘 잘못하고 있니?

+1

당신이 같거나 열 이상으로 이미지보기 하단 제약 조건을 설정하려 한 이미지보기보다 작은 붕괴? – Douglas

+0

감사합니다. @Douglas! Bottom Space 제약 조건을> = 10으로 설정하면 셀 내용이 레이블 내용으로 커지게됩니다. 셀을 가려 내기 위해 UIImageView에 대한 Top Space 제약 조건을 제거하고 Vertical Centering 제약 조건을 추가했습니다. – cubsnlinux

+0

다행이었습니다. Ray Wenderlich 웹 사이트의 튜토리얼에서 그 트릭을 배웠습니다. 배우기에 좋은 곳. – Douglas

답변

0

ImageView를 고정 높이로 설정하고 상단 및 하단을 콘텐츠보기에 바인딩했기 때문에 높이가 적절합니다. 이것은 세포가 더 커지는 것을 멈 춥니 다.

셀의 높이가 이미지보기에 의해 제한되지 않도록 이미지 높이를 늘리거나 위쪽 또는 아래쪽 구속 조건을 제거해야합니다.

이러한 제약을 시도해보십시오

  • 이미지보기 높이/폭
  • 보기 선도
  • 이미지 = 셀
  • 이미지보기 최고 = 휴대 최고
    • 선도 또는 수직으로 가운데 또는 당신이 무엇을 좋겠 처럼.
    • 는 기본적으로, 단지 어떻게 든
  • 라벨 선도 = 이미지보기
  • 라벨 최고 = 휴대 최고
  • 라벨 하단 = 셀 아래
  • 라벨 후행 = 셀 후행 이미지 뷰의 Y 위치를 설정
  • 라벨 높이> = 이미지보기 높이
    • 를 후행하는 (따라서 셀과) fr과 라벨을 중지하려면 톰
+1

감사합니다. @ ABeard89. 위의 내 의견을 참조하십시오. UIImageView에서> = 10의 Bottom Space 제약 조건이 트릭을 수행했습니다. – cubsnlinux

+0

@cubsnlinux That> = constraint는 고정 높이 문제도 해결합니다. 그게 잘못된 것은 아닙니다. 다행 이네 다행이야! – ABeard89

+0

이 해결 방법으로 문제가 해결되었습니다. 그러나 Label Height> = Image View Height를 설정하는 대신 UIImageView의 Bottom Space 제약 조건을 개인적으로 더 직관적이라고 판단했기 때문에> = 10으로 설정했습니다. 두 가지 솔루션 모두 작동합니다. – cubsnlinux