2013-02-11 2 views
0

보다 크거나 같음보다 작거나 같음으로 여러 제약 조건을 정의했습니다. iOS는 수퍼 뷰가 크기를 변경했을 때 어떤보기가 크기를 바꿀지를 어떻게 결정합니까?Autolayout - 먼저 어떤 제약 조건을 변경해야하는지 정의합니다.

의 내가 10보다 크고 제약 하나 개의보기를 가정 해 봅시다 미만 20 그리고 40보다 크고 작음 (60)

는 이제 수퍼은 크기와 변경 제약과 두 번째보기를 얻었다 사용 가능한 공간은 10 픽셀 씩 증가합니다. 어떤 크기 제한을 먼저 허용 할 수있는 제약 조건을 정의 할 수있는 방법이 필요합니다 (그리고 10 픽셀을 사용합니다).

답변

1

NSLayoutConstraint의 우선 순위는 우선 제약 조건 인 iOS & OS X에게 알려줍니다.

우선 확장하려는 viewOne보기가있는 경우 시각 형식이 @"H:[viewOne([email protected])]" 인 제약 조건을 적용하십시오. 그러면 iOS에 필요한 제약 조건 인 10≤viewOne≤20 & 40≤viewTwo≤60이 충족 된 후 viewOne 9,999 픽셀이되어 viewTwo 전에 확장해야합니다.

당신이 마법 번호 9999를 저장하지 않으려면,

NSNumber* maxWidthForViewOne = @(20) ; 
NSLayoutConstraint* constraint = [NSLayoutConstraint constraintsWithVisualFormat:@"H:[viewOne([email protected])]" options:0 metrics:@{@"asBigAsPossible":maxWidthForViewOne} views:views] [0] ; 

내가 OS X에서 이러한 테스트, 나는 499 것을 발견

(NSLayoutPriorityWindowSizeStayPut는 - 1) 나 축소 할 수 가장 높은 우선 순위를이었다 창 크기를 조정하여 viewOne을 입력하십시오. iOS를 사용하고 있으므로 우선 순위가 원하는대로 작동하는지 테스트하고 싶을 것입니다.

관련 문제