2013-09-03 2 views
1

탭 막대 바로 위의보기를 첨부하는 자동 레이아웃 제약이 있습니다. 이것의 세부 사항은 중요하지 않다, 그것은 잘 작동한다.수직 간격 자동 분할 제한 만들기

NSDictionary *views = @{@"view":self.collectionSelectionContainer, @"bottomLayoutGuide":self.bottomLayoutGuide}; 
NSDictionary *metrics = @{@"offset":@(tabBarHeight)}; 
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[view]-offset-[bottomLayoutGuide]" options:0 metrics:metrics views:views]]; 

그러나 나는 다른 방법을 사용하여이 제약 조건을 만들려면 : 나는 실패 여러 가지 방법을 시도했습니다

[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:] 

. 아무도 어떻게 보여줄 수 있습니까?

감사

+0

안녕하세요, 관심의 대상에서 'collectionSelectionContainer'의 하단을 'tabBar'상단에 연결하지 않는 이유는 무엇입니까? –

+0

Ey up Mike .... 내 레이아웃 제약 조건은 포함 계층 구조에있는 뷰 컨트롤러에 있습니다. 따라서 내보기의 자손이 아닌 탭 표시 줄에 제약 조건을 추가하려고하면 규칙이 위반됩니다. – bandejapaisa

+0

아, 복잡하게 들린다 ... 확실히 프레임을 설정 박동 친! :) –

답변

2

나는 난 그냥 NSLayoutConstraint이 constraintsWithVisualFormat에서 배열을 반환 검사 수 있다고 생각!

을 대답은 이것이다 : 이것은 실제로 거기에서 방법을 구축 한 후 그것을 알아낼 수있는 좋은 방법이었다

self.collectionSelectionBottomConstraint = [NSLayoutConstraint constraintWithItem:self.bottomLayoutGuide attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.collectionSelectionContainer attribute:NSLayoutAttributeBottom multiplier:1 constant:tabBarHeight]; 
[self.view addConstraint:self.collectionSelectionBottomConstraint]; 

나는 내가 전에 실패되고 있던 이유는 내가 0을 통과하는 것을 생각 승수.

+0

'TopMargin' 대신'Top'을 사용해야했습니다. 그것은 내 경우의 오류였다. – testing