【发布时间】:2018-04-09 21:57:26
【问题描述】:
我试图了解何时覆盖 layoutSubviews 和 updateConstraints。
我创建了一个自定义视图,该视图包含其他视图。我无法在自定义初始化程序中设置视图子视图的约束,因为我还不知道自定义视图的框架。
目前我有这个:
-(void)layoutSubviews
{
[super layoutSubviews];
// Add new constraints
}
然后每当我添加或删除任何子视图时,我都会调用[self setNeedsLayout];
这是正确的方法吗?每当调用 layoutSubviews 时,我目前正在重新创建约束。我听说updateConstraints 可能是我想要的?但我不确定,因为子视图的数量不会保持不变,因此约束的数量也不会保持不变。
【问题讨论】:
-
您的自定义视图可以有不同数量的子视图,具体取决于初始化程序中设置的内容?
-
你最好不要混合约束和框架。只需为子视图添加约束即可。
-
@slickdaddy 没错,以后子视图的数量可能会改变
标签: ios objective-c autolayout nslayoutconstraint layoutsubviews