我正在構建一個應用程序,而我正面臨一個有約束的奇怪問題。約束動畫問題
我試圖給連線到故事板中UIView
的高度約束設置動畫,但模擬器顯示一些奇怪的行爲。爲了調試,我創建了一個全新的iOS 9.2項目,並添加了一個UIButton
,爲它設置了一個水平針腳和超級頂視圖頂端約束,將頂部約束與我的頭文件和按鈕本身鏈接到IBAction
。
當單獨調用此代碼:
- (IBAction)myAction:(id)sender {
self.topConstraint.constant += 150.0f;
}
按鈕釦150分的情況下,即使沒有調用[self.view layoutIfNeeded];
。
然而,當我使用這個代碼:
- (IBAction)myAction:(id)sender {
self.topConstraint.constant += 150.0f;
[self.view setNeedsUpdateConstraints];
[UIView animateWithDuration:1 animations:^{
[self.view layoutIfNeeded];
}];
}
按鈕向下滑動。
當沒有動畫塊時,如何在沒有我的情況下調用layoutIfNeeded
?我覺得這很奇怪。
這是我的頭文件:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *topConstraint;
@end
而且我最NSLayoutConstraint
設置:
而且在Interface Builder中UIViewController
:
當你需要佈局時,你不需要調用set needsto更新約束! –
@T先生,我明白了 - 我會改變它的。感謝您的反饋。你知道我爲什麼面臨的問題正在發生嗎? – Erik