如何触发所有自动布局约束的更新?
我以编程方式修改了一个自动布局约束。 它对某个特定视图生效,但与该视图的其他约束绑定的其他视图不会更改其位置。 是否有“ updateAllConstraints ”方法?
在要更新的视图上调用这两个方法:
-setNeedsLayout -layoutIfNeeded
第一个对布局系统说这个视图需要布局,因为它有一些变化,一切都应该重新计算。 第二个强制布局系统现在运行,布局系统在运行期间的特定时间触发,用这种方法你会说:“立即行动”。
是的,UIView上有一个方法叫做- (void)updateConstraintsIfNeeded
但是我不认为这是你的问题
问题是没有正确设置约束,在这种情况下,setNeedsLayout或updateConstraintsIfNeeded不能提供帮助。
我发现的最好的是:
-
选择要“弹出”回约束的项目
-
顶部菜单:编辑器/更新框架(或/)快捷方式:命令+选项+ =
希望这会有所帮助