2017-12-27 7 views
0

세 개의 UILabel을 서로 겹쳐 놓았지만 두 번째 라벨을 숨기고 세 번째 라벨을 원래의 두 번째 라벨과 동일한 위치로 옮기고 싶습니다. 지금, 내 코드는 두 번째 레이블을 숨기고 0으로 제약 조건을 설정했지만 autolayout 제약 조건은 동일하게 유지되므로 첫 번째와 세 번째 레이블 사이에 여전히 큰 공간이 있습니다.Autolayout으로 라벨을 숨긴 후 공간 제거

나는 UILabels에 대한 다른 UIViews를 해결하는 질문, 그러나 아무도를 보았다 그들은 원래의 자동 레이아웃 제약

를 제거하는 방법에 대해 설명하지 않습니다
secondLabel.isHidden = true 
secondLabelHeightConstraint.constant = 0 
+0

시도해보십시오. UIStackView –

+0

죄송합니다. 분명히해야합니다. 세 번째 레이블 옆에 ImageView가 있으므로 3 개의 레이블과 이미지 뷰 모두를 스택 뷰 할 수 있습니까? –

+0

먼저 UILabel은 UIView의 하위 클래스이므로 레이아웃에 대한 모든 내용이 동일하게 적용됩니다 (분명히 텍스트 정렬은 아님). 둘째로 세 번째 레이블 옆에 UIImageView가 있고 UIStackView에서 단일 항목으로 처리되도록 이들을 함께 머물러 자신의 UIView (또는 UIStackView)에 넣길 원할 경우 셋째, 레이블을 UIStackView에 넣으면 모든 제약 조건을 조정하지 않고 숨길 필요가 있습니다. –

답변

0
당신은 사용 후 스택보기로 레이블의 세 가지를 넣을 수 있습니다

자신의 아울렛을 숨길 수 있습니다. 예 : lbl1.isHidden = true 또는 스택보기를 사용하지 않으려면 다음 링크 https://github.com/snoozelag/GoneVisible을 사용할 수 있습니다. 이는 라벨에 공간을 할당 할 수있는 android gone 메소드와 같습니다. 먼저 할 일은 lbl1.isHidden = true입니다. lbl1.gone()