UIViewanimationlayoutIf需要不起作用

我正在使用此消息来将客户视图设置为设备屏幕的下边缘。 我连接了布局约束,并将初始常量设置为-60。 当该值设置为0时,我期望视图顶部animation。 但不幸的是,预期的function不工作。 即使调用方法,当界面方向改变时,视图也是希望的。 我使用Xcode 6.4和iOS 8作为基础SDK。 任何帮助将不胜感激。

if (alertVisible) { self.alertViewVerticalConstraint.constant = 0; [UIView animateWithDuration:0.25 animations: ^{ [self.view bringSubviewToFront:self.alertView]; self.alertView.alpha = 0.5; [self.alertView layoutIfNeeded]; }]; } else { self.alertViewVerticalConstraint.constant = -60; [UIView animateWithDuration:0.25 animations: ^{ self.alertView.alpha = 0.0; [self.alertView layoutIfNeeded]; }]; } 

每当你想animation约束的变化,你必须定义animation块内的行。

所以你的代码会变成这样,

 if (alertVisible) { [UIView animateWithDuration:0.25 animations: ^{ self.alertViewVerticalConstraint.constant = 0; [self.view bringSubviewToFront:self.alertView]; self.alertView.alpha = 0.5; [self.view layoutIfNeeded]; }]; } else { [UIView animateWithDuration:0.25 animations: ^{ self.alertViewVerticalConstraint.constant = -60; self.alertView.alpha = 0.0; [self.view layoutIfNeeded]; }]; }