我想有一个UIView在哪里,每次我添加或删除子视图从它的subviews
数组,无论子视图恰好是在数组仍然等间距。
例如,如果我有子视图a和b,间隔10个点,如下所示:
[a] -10 [b]
,然后添加视图c, subviews
中的视图现在应该自动布局如下:
[a] -10 - -10 - [c] [b]
如果,然而,我现在删除视图b, a和c之间的差距应该再次更新为10点:
[a] -10 [c]
我知道我可以使用NSLayoutConstraint在两个已知视图之间创建这种类型的约束,我想我也可以设置一个KVO,每次数组改变时,我可以通过所有子视图循环并重新应用约束,但我想知道是否有一种自动的方式来做到这一点。
确保基于当前子视图计算约束的代码位于updateConstraints:
- (void)updateConstraints {
[super updateConstraints];
// Put your code here
}
然后你只需要调用setNeedsUpdateConstraints
每当你添加/删除子视图