尽管我喜欢将自动布局作为一个概念,但我似乎经常被实现细节绊倒。其中之一是我已经厌倦了存储应用于给定子视图的约束,因此我可以稍后删除和替换它们。
例如,当我第一次添加一个视图时,我可能会给它一个约束:
@"H:[view(==200)]|"
将其放置在屏幕的右侧,宽度为 200。如果我以后想将其设置为 400 宽,并留出 200 大小的间隙怎么办?新的布局很简单,但直接与旧的相矛盾:
@"H:[view(==200)]-(200)]|"
所以我必须保存约束数组,以便以后可以使用它们来删除所述约束。必须有一个更简单的解决方案,我在某个地方缺少。不幸的是,[视图约束]的明显解决方案没有意义,因为您不会将约束直接应用于给定视图,而是将它们应用于它的超级视图。(另外,它往往充满了自动布局约束,使其自己的对象正确适合 - 而不是你想要删除的东西只是为了调整它的位置!)而且似乎没有任何 [view constraintsForSubview:] 选项可用.
我瞎了吗?遗漏了什么?我真的需要交出现有约束的字典,以便以后修复它们吗?