2014-05-15 2 views
0

일부 수직 간격 제한이있는 자동 레이아웃을 사용하여 "하위보기"를 레이아웃하는 사용자 정의 UIView이 있습니다.자동 레이아웃을 사용하여 크기 조정보기

@"V:|-(10)-[_label]-(10)-| 

이보기는 축소/확장 할 수있는 컨트롤러보기에 추가되었습니다. 이렇게하기 위해 높이 제한을 추가하여 0 또는 지정된 높이로 조정했습니다.

코드 :

- (void)toggleView:(id)sender 
{ 
    self.viewVisible = !self.viewVisible; 
    self.headerHeightConstraint.constant = self.viewVisible ? 100 : 0; 
    [UIView animateWithDuration:0.5 animations:^{ 
     [self.view layoutIfNeeded]; 
    }]; 
} 

문제는 내가보기를 축소 할 때, 나는 몇 가지 자동 레이아웃 예외를 가지고 있기 때문에 내부 라벨 뷰의 수직 간격 뷰 충돌의 0 높이입니다.

내부 높이 제약이있는 뷰를 축소하려면 어떻게해야합니까?

"Here"은 샘플 프로젝트입니다.

환호,

답변

0

월은 그냥 세로 간격의 우선 순위를 변경합니다. UILayoutConstraints는 생성시 기본 우선 순위가 1000이므로 수직 간격의 우선 순위를 그보다 조금 낮게 변경하여 높이 제약이 항상 수직 간격보다 우선 순위를 갖도록 할 수 있습니다.

변경 FF 비주얼 형식 :

@"V:|-([email protected])-[_label]-([email protected])-| 
관련 문제