2014-07-16 4 views
3

다음과 같은 디자인이 있습니다. enter image description hereUITableView 자동 레이아웃 유연한 높이

모든 것을 유연하게 만들기 위해 AutoLayout을 사용 중입니다. 이 디자인에서 나는 UIView 이미지에 표시되는 회색 색상과 UIView 아래의 UITableView을가집니다. 어떤 때는 이걸 보여야 만합니다. UIView 그리고이 회색을 숨겨야 만합니다. UIView.

내 문제는 내가 UIView을 숨기고, UITableView의 키가 고정되지 않는 경우입니다. 나는 .m 파일에 하드 코딩하고 싶지 않다. 가능하면 AutoLayout이 문제를 처리하십시오. 아래의 그림과 같은 제약이 있습니다. 제약이없는 것 같습니다.

enter image description here

내가 UIView 높이를 변경하려고

는 jQuery과 최대 이동 이미지 쇼와 같은 일부 오렌지 제약을 표시되지 않습니다. enter image description here

+0

런타임에 체크인 했습니까? 인터페이스 작성기에서 제약 조건을 변경하면 런타임시 상대적인 레이아웃의 레이아웃이 변경됨을 알리는 노란색 주황색 선이 표시됩니다. 인터페이스 빌더에서 노란 선을 제거하고 편집기 -> 자동 레이아웃 문제 해결 -> 프레임 업데이트를 선택하십시오. – soulpark

답변

1

제약 조건이 좋아 보인다. UIView 회색을 표시하거나 숨기려면 높이 제한을 일정하게 변경해야합니다. 컨트롤러에 IBOutlet 컨트롤러를 작성하십시오 (사용자가 UIViewIBOutlet과 같은 방식으로 수행 함). 회색보기를 숨기려면 0으로 제약 조건의 constant 속성을 설정하십시오.

예 :

@interface MyViewController 
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *greyViewHeightConstraint; 
@end 

하고보기 숨길 때

self.greyViewHeightConstraint.constant = 0; 

다시보기를 표시하려면를 스토리 보드가 (에 대한 viewDidLoad처럼로드 된 후, 당신은 "기본"상수 값을 저장해야 예)를 입력하고 self.greyViewHeightConstraint.constant을이 저장된 값으로 설정합니다.

이러한 제약 조건은 can be animated으로 변경됩니다.


인터페이스 작성기에 표시되는 "주황색 제한"은 정상입니다.보기 프레임이 설정 한 제약 조건과 일치하지 않음을 나타냅니다. 그런 다음 제약 조건을 준수하도록 프레임을 업데이트하거나 프레임과 일치하도록 제약 조건을 업데이트 할 수 있습니다.

+0

Ok. 내가 너의 해법을 시험해 볼게. – user2706827

+0

내 필요에 따라 작동하는 솔루션. – user2706827