手动调用updateViewConstraints是一个好主意吗?

我主要在viewDidLoad创建约束。 在updateViewConstraints我添加或删除了一些子视图,另外还添加和删除了约束。 作为旁注,我正在使用带有子视图控制器的容器,我正在重复使用不同方向的相同视图(完整的横向,纵向的弹出窗口)。

因为我在updateViewConstraints有完整的设置, updateViewConstraints我必须在某些情况下手动调用它以适应视觉变化而不是制动约束(例如,当在弹出窗口中呈现相同视图时,或者在iOS 7上不调用它时) 。 我也尝试使用setNeedsUpdateConstraints等,但这总是打破了我的约束。

我现在的问题是我可以手动调用updateViewConstraints吗? 它有一些副作用吗? 或者我的申请流程错了?

根据Erica Sadun在优秀的iOS Auto Layout Demystified,第2版中的updateViewConstraints直接调用updateViewConstraints是完全可以接受的:

使用视图时,可以调用setNeedsUpdateConstraints(setNeedsUpdate Constraints:on OS X)来指示视图在下一个布局过程中需要注意。 使用视图控制器,您可以直接调用updateViewConstraints方法,通常在设置(viewWillAppear :)并响应旋转回调时。