我從教程自動佈局約束變化並不動畫
http://weblog.invasivecode.com/post/42362079291/auto-layout-and-core-animation-auto-layout-was
學習與動畫自動佈局和事情的工作完美。
當我試圖在我的應用程序來使用這個概念,試圖從底部到頂部動畫設定畫面(一個UIView),它的偉大工程時,設置屏幕只是一個空的UIView,
但萬一我添加一個UILabel作爲子視圖到這個設置屏幕,動畫就消失了。 從設置屏幕刪除此UILabel時,動畫是可見的。
這裏是我已連接
__weak IBOutlet UIView *settingsView;
__weak IBOutlet NSLayoutConstraint *settingsBottomConstraint;
__weak IBOutlet NSLayoutConstraint *settingsViewHeightConstraint;
查看網點沒有負載設置方法(setupViews)
-(void)setupViews
{
settingsBottomConstraint.constant = - settingsViewHeightConstraint.constant;
[settingsView setNeedsUpdateConstraints];
[settingsView layoutIfNeeded];
isSettingsHidden = YES;
}
隱藏/取消隱藏方法
- (IBAction)showSettingsScreen:(id)sender {
if (isSettingsHidden) {
settingsBottomConstraint.constant = 0;
[settingsView setNeedsUpdateConstraints];
[UIView animateWithDuration:.3 animations:^{
[settingsView layoutIfNeeded];
}];
}
else{
settingsBottomConstraint.constant = - settingsViewHeightConstraint.constant;
[settingsView setNeedsUpdateConstraints];
[UIView animateWithDuration:0.3 animations:^{
[settingsView layoutIfNeeded];
}];
}
isSettingsHidden = !isSettingsHidden;
}
我的問題似乎相似 Issue with UIView Auto Layout Animation
你的UILabel有哪些限制? –
@Iftekhar,我試過了兩個選項。 1.只需將標籤放到UIView中(即不帶約束),並且2.將寬度,高度,頂部空間的約束添加到超級視圖並導致超級視圖。沒有工作。 – BangOperator