簡體   English   中英

添加約束而無需自動布局

[英]Adding constraints without auto-layout

我正在使用包含UICollectionView的模態視圖構建應用程序,並在其下方包含兩個按鈕(驗證/取消)的視圖。

UICollectionView中的行數可以根據數據而變化,並且事先不知道,因此我想添加一個約束以使我的按鈕始終保持在collectionView下30px。

我沒有為此使用自動布局,因為有些動畫如果沒有它會更好地工作,所以我不知道如何以編程方式添加此類約束。

有誰知道如何做嗎?

非常感謝您的幫助

我不確定集合視圖。 但是,以下代碼適用於標准視圖,並且由於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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM