2016-09-14 4 views
1

나는 UITableViewCell을 nib 파일로 구성했습니다. (하지만 당신은 스토리 보드의 UITableView 내에서 프로토 타입을 사용할 수 있습니다.)Xcode 8 - 자동 레이아웃과 유연한 섹션 헤더 (및 응답)

이 셀이 유연한 높이 섹션 헤더로 사용하기 위해 설계되었습니다 : contentView는, 셀이 하나의 UIStackView이 포함되어 그 내

. UIStackView 안에는 UILabels의 무리가 있습니다. 내용은 가변적이며 동적으로 추가됩니다.

하면이 일어날 수 있도록하려면

  1. 제약 조건을 추가하십시오 contentViewUIStackView의 가장자리를 핀. 여기에 상수에 0이 아닌 값을 사용하지 않도록주의하십시오. 그렇지 않으면 자동 레이아웃이 중단 될 수 있습니다.

  2. tableView.estimatedSectionHeaderHeight 양수가 아닌 값으로 설정하십시오. 이렇게하면 높이가 유연 해집니다. 그 후

, 보통 : 펜촉이 등록되어있는 tableView 셀 필요할 때 대기열에서 제거하고, 그 특성이 설정된다.

Xcode 7에서 생성되어 iOS 9에서 실행되는 코드가 작동합니다. 스택 뷰의 내용을 추가하거나 수정할 때 셀 (섹션 머리글) 높이가 변경됩니다.

문제 : Xcode 8 GM. Xcode 8을 통해 생성되고 iOS 9에서 실행되는 동일한 레이아웃은 실패합니다. 운이 좋다면, Xcode는 우리가 너무 좋아하는 로그 메시지를 매우 유용하게 사용할 수있는 "제약 조건을 동시에 충족시킬 수 없습니다"중 일부를 줄 수도 있습니다.

+0

당신은 당신의 자신의 질문에 대답 할 수 있지만, 당신이 그렇게해야 " 답변 "섹션을 참조하십시오. – Paulw11

+0

아, 죄송합니다. 나는 그것을 편집 할 것이다. – Womble

답변

1

솔루션 :

엑스 코드 (8) 및 자동 레이아웃은 이제 구현하는 UITableViewDelegate 방법이 필요합니다. 이 옵션 적이거나 이전에 추정하지만 더 이상 그렇게 (나 같은 경우)이 간과, 그것을 간과 한 수 있습니다 더 이상 :

func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat 
{ 
    return UITableViewAutomaticDimension 
}