2013-08-09 3 views
0

UICollectionView를 포함하는 모달 뷰를 가진 앱을 만들고 그 아래에 두 개의 버튼이 포함 된 뷰 (유효성 검사/취소)가 있습니다.자동 레이아웃을 사용하지 않고 제약 조건 추가하기

내 UICollectionView의 행 수는 데이터에 따라 변경 될 수 있으며 사전에 알 수 없으므로 제한 사항을 추가하여 collectionView 아래에 항상 30px로 버튼을 유지해야합니다.

프로그래밍 방식으로 이러한 제약 조건을 추가하는 방법을 알지 못하는데 일부 애니메이션이 없기 때문에 자동 레이아웃을 사용하지 않습니다.

누구나 어떻게 할 수 있습니까?

도움을 주셔서 감사합니다.

+1

[여기에] (http://ioscreator.com/auto-layout-in-ios-6)를 확인하십시오. -adding-constraints-through-code /)? – CaptJak

답변

0

수집보기가 확실하지 않습니다. 그러나, 아래의 표준보기로 작동하고 UICollectionView가있는 UIView의 일종이기 때문에, 다음 코드는 컬렉션을보기

NSLayoutConstraint *bottomConstraint=[NSLayoutConstraint constraintWithItem:buttonA attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:0.45 constant:0]; 
    NSLayoutConstraint *widthConstraint=[NSLayoutConstraint constraintWithItem:buttonA attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:95]; 
    NSLayoutConstraint *heightConstraint=[NSLayoutConstraint constraintWithItem:buttonA attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:95]; 
    NSLayoutConstraint *leftConstraint=[NSLayoutConstraint constraintWithItem:buttonA attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1 constant:20]; 
    [self.view addConstraints:@[bottomConstraint,widthConstraint,heightConstraint,leftConstraint]]; 

위 기본적으로 뷰에 buttonA 상대를 레이아웃으로 작동 할 수 있습니다. 그러나 이것을 사용하려면 자동 레이아웃을 해제해야합니다 (귀하의 경우).

하단 구속 조건은이 제약 조건이 버튼 A와 관련되어 있으며 해당 속성 NSLayoutAttributeBottom (아래쪽)에서 작동하며 아래쪽은 정확히 0.45 * (밑면)에 표시됩니다.

너비 제약 조건은 버튼 A와 관련이 있으며 너비에 따라 작동하도록 지정합니다. 너비는 다른 객체에 종속적이지 않으며 (toItem은 nil입니다.) 상수 값은 95입니다.

+0

많은 감사합니다! 정말 도움이! – Spearfisher

관련 문제