- (IBAction)btnA:(id)sender {
if(self.height.constant == 300) {
self.height.constant = 50;
} else {
self.height.constant = 300;
}
[self.subView1 setNeedsUpdateConstraints];
[UIView animateWithDuration:1.0 animations:^{
[self.subView1 layoutIfNeeded];
}];
}
我正在使用此代码,但在iOS10
上它没有动画它只是跳跃增加和减少mySubview1高度。为什么呢?
相同的代码在iOS9
答案 0 :(得分:9)
对于iOS10,它必须强制布局视图的超级视图。
//Force apply all constraints prior to the change in constant.
[self.view.superview layoutIfNeeded];
//Update constant
self.height.constant = 0;
[UIView animateWithDuration:1.0 animations:^{
[self.view.superview layoutIfNeeded];
}
我认为这种行为是由Xcode8-iOS10布局的变化引起的
参考文献: