我希望有一个UIView,每当我在其subviews
数组中添加或删除子视图时,无论在数组中发生的子视图仍然是等距的。
例如,如果我有子视图a和b间隔10点appart,就像这样:
并[a] -10- [B]
然后添加一个视图c,subviews
中的视图现在应该自动布局如下:
并[a] -10- [B] -10- [C]
如果我现在删除了视图b,则a和c之间的差距应该再次更新为10分:
并[a] -10- [C]
我知道我可以使用NSLayoutConstraint在两个已知视图之间创建这种类型的约束,我想我也可以设置一个KVO,每次数组更改时我都可以遍历所有子视图并重新应用约束但是我我想知道是否有自动方式。
答案 0 :(得分:2)
确保根据当前子视图计算约束的代码位于updateConstraints:
- (void)updateConstraints {
[super updateConstraints];
// Put your code here
}
然后,您只需在添加/删除子视图时调用setNeedsUpdateConstraints
。