2016-10-14 4 views
1

xib에 선택적 UIImageView가있는 사용자 지정 UITableViewCell을 만들었습니다. 라벨의 리딩 엣지가 imageView의 트레일 링 에지에 붙는 제약 조건을 만들었습니다.xib에 선택적 UIImageView가있는 사용자 지정 UITableViewCell

imageView의 이미지는 선택 사항이며 이미지를 설정하지 않으면 imageView를 제거/숨기고 왼쪽으로 라벨을 이동하려고합니다. layoutSubviews의 코드에서 제약 조건을 추가하고 제거하려고 시도했지만 다른 제약 조건을 위반했습니다.

여기 올바른 길에 있습니까? Value1/2의 UITableViewCell 네이티브 스타일처럼 동작하기를 원합니다. 이미지 세트가 없으면 모든 것이 왼쪽으로 이동합니다.

감사

답변

0

예 옳은 길을 가고 있습니다. 쉬운 방법은 imageview widht 상수의 IBOutlet을 만들어야한다는 것입니다. 아래 이미지를 참조하십시오.

Imageview Width IBOutlet

그런 다음 그것이 당신의 이미지 뷰에 공간을 선도하는 것처럼 왼쪽으로 자동 이동합니다 0

if(// condition to check if imageview does not contain any image){ 
     _imgVwWidthConst.constant = 0; 
} 

라벨에 폭 일정을 설정합니다.

+0

감사합니다. 올바른 해결책이 아닐지라도 효과가있었습니다. 실제로 imageView를 제거하고 모든 제약 조건을 업데이트하는 것이 올바른 해결책이라고 생각합니다. 내가해야만 한 또 다른 일은 커플 상수를 업데이트하여 상수보다 크거나 같게 만드는 것입니다. – bdaniels

0

당신은 당신의보기의 왼쪽 가장자리에있는 텍스트 레이블이 개 제약 조건 하나를 가질 수

을 | < - (> = 10) -> [레이블] ...

| < - (10) -> [ImageView] < - (10) -> [레이블] ....

그래서 이미지를 숨기려면 이미지를 숨기거나 제약 조건을 비활성화하십시오.

0

UIImageView은 이미지 세트가 있는지 여부에 관계없이 크기를 유지하므로이 작업을 자동으로 수행 할 수있는 방법이 없습니다.

한 가지 방법은 이미지가없는 경우 현재 설정을 그대로두고 코드의 레이블 제약 조건을 -yourImageView.bounds.size.width으로 업데이트하는 것입니다. 필요한 경우 라벨을 바꿀 수 있습니다.