3

我有一个嵌套视图,我在某个动作上完全动画出框架。为此,我更新了动画块中约束的常量。

[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];

基本上,这两个约束只是将它绑定到父视图(全屏)的顶部和底部。显然,我不能在不更改另一个约束的情况下更改其中一个约束,否则布局不能令人满意。

这里奇怪的部分是我必须按照上面显示的顺序更改这些。如果我以其他顺序更新常量,则会引发“满足”错误。

所以:

  1. 为什么顺序很重要?
  2. 如果在我们更新所有约束之前它们会发生冲突,我们是否应该在更改约束时从技术上删除它们?(他们是否因为某种原因立即评估,而不是等待layoutSubviewsor layoutIfNeeded
4

0 回答 0