동적 높이의 맞춤 셀을 사용하여 UITableView를 작성하고 있습니다. 나는 here과 같은 방법론을 사용하고 있습니다.UITableViewCell 동적 제약
간단히하기 위해 아래 그림과 같이 내 셀에 2 개의 UILabels이 포함되어 있다고 가정 해보십시오.
자주색 UILabel은 UITableView의 모든 셀에서 동일한 높이로 유지됩니다. 이 경우 보라색 UILabel은 녹색 UILabel보다 크다. 보라색 UILabel의 아래쪽과 contentView의 아래쪽 사이의 구속 조건을 8로 지정하고 싶습니다.
그러나 아래와 같이 두 번째 시나리오가 있습니다.
이 경우 보라색 UILabel은 첫 번째 경우와 크기가 같습니다 (작아 보이지만 상대적으로 전체 셀 높이가 더 크기 때문에 작아짐). 녹색 UILabel은 훨씬 더 큽니다. 이 경우, 녹색 UILabel의 하단과 contentView의 아래쪽 사이의 구속 조건을 8로 설정하고 싶습니다.
이제 딜레마는 둘 중 하나를 설정할 수 있습니다 (스토리 보드를 사용 중입니다). 그러나 나는 동시에 둘을 가능하게하는 방법을 생각할 수 없다. 내 생각 엔 녹색 UILabel의 크기에 따라 런타임 중에 프로그래밍 방식으로 제약 조건을 조정해야 할 것입니다.
의견이 있으십니까?
저는 Swift에서 XCode 6.1.1을 사용하고 있습니다.
감사합니다. 보라색 레이블이 같은 높이가 항상 경우
의견을 보내 주셔서 감사 드리며 자주색 레이블의 높이 제한을 설정해야합니다. 그러나 녹색 레이블에 대한 메서드를 사용하여 녹색 레이블이 매우 짧으면 (아마도 한 줄만) contentView의 높이가 녹색 레이블의 높이로 제한되므로 자주색 레이블의 일부가 잘립니다. 내가 본질적으로 바라는 것은 다음과 같은 논리입니다 : 초록색 레이블이 보라색 레이블보다 짧으면 contentView는 녹색 레이블보다 8px 아래에 있어야합니다. 이 경우 contentView는 보라색 레이블보다 8px 낮아야합니다. – coldbuffet
contentView의 하단을 greenView로 설정하고 속성 관리자에서 해당 제약 조건의 우선 순위를 990으로 설정해보십시오. 그런 다음 contentView의 bottom을 purpleView로 설정하는 또 다른 제약 조건을 8로 추가하지만 속성 관리자로 이동하여 "Equal"에서 "Greater than or equal"로 변경하여 해당 우선 순위를 1000으로 유지합니다. 이제 contentView의 높이가 보라색보기 아래로 8 픽셀 미만으로 떨어지면 우선 순위 990 제약 조건을 위반하게됩니다. – ptsimpso
감사합니다! 그것은 아름답게 작동했습니다. 제약 조건 관계가 변경 될 수 있다는 것을 알지 못했습니다. 프로그래밍 방식으로 제약 조건을 관리 할 필요가 없기 때문에 매우 기쁩니다. 정답으로 표시됩니다. – coldbuffet