我主要在viewDidLoad
创建约束。在updateViewConstraints
我添加或删除了一些子视图,另外添加和删除了约束。作为旁注,我正在使用带有子视图控制器的容器,我正在重复使用不同方向的相同视图(完整的横向,纵向的弹出窗口)。
因为我在updateViewConstraints
中有完整的设置,所以我必须在某些情况下手动调用它以适应视觉变化而不是制动约束(例如,在弹出框中或在iOS 7上呈现相同的视图时)它没有被调用旋转)。我也尝试使用setNeedsUpdateConstraints
等等,但这总是打破了我的限制。
我现在的问题是我可以手动拨打updateViewConstraints
吗?它有一些负面的副作用吗?或者我的申请流程错了吗?
答案 0 :(得分:3)
根据优秀Erica Sadun中的iOS Auto Layout Demystified, 2nd Edition,直接致电updateViewConstraints
是完全可以接受的:
使用视图时,可以调用setNeedsUpdateConstraints (setNeedsUpdate Constraints:on OS X)表示视图需要 注意下一个布局通行证。使用视图控制器,您可以调用 updateViewConstraints方法直接,一般在设置时 (viewWillAppear :)并响应旋转回调。