我有一个嵌套视图,我在某个动作上完全动画出框架。为此,我更新了动画块中约束的常量。
[UIView animateWithDuration:.5 animations:^{
self.categoriesTableViewConstraintToBottom.constant = [UIScreen mainScreen].bounds.size.height;
self.categoriesTableViewConstraintToTop.constant = [UIScreen mainScreen].bounds.size.height;
[self.view layoutSubviews];
}, completion: nil];
基本上,这两个约束只是将它绑定到父视图的顶部和底部(全屏)。显然我不能改变其中一个约束而不改变另一个约束,否则布局是不可满足的。
这里奇怪的部分是我必须按照上面显示的顺序更改这些。如果我以其他顺序更新常量,则会引发“满足”错误。
所以:
layoutSubviews
或layoutIfNeeded
?