top*_*wik 20 ios nslayoutconstraint
我有一个视图控制器,我想在updateViewConstraints中设置我的视图约束.我在该方法中有一个断点,它永远不会被调用.
为什么不能被召唤?框架什么时候想在我的视图控制器上调用此方法?
lxt*_*lxt 16
updateViewConstraints被调用viewWillLayoutSubviews(通过你的视图layoutSubviews方法).顾名思义,只要您的视图控制器需要更新其布局,就会调用此方法.
如果您发现updateViewConstraints是永远不会被调用,那么你应该确保你在呼唤super您的视图控制器的方法在需要.
而且,听起来好像你在内部创建约束updateViewConstraints?这也可能是您的问题的原因.您应该更新该方法中的约束,而不是创建它们(与放置layoutSubviews视图的方式相同,但不要实例化它们).
onm*_*133 14
您在ViewController中,并且您希望系统调用updateViewConstraints,然后您必须调用它
[self.view setNeedsUpdateConstraints];
Run Code Online (Sandbox Code Playgroud)
Ben*_*air 13
你UIView必须实施+ (BOOL)requiresConstraintBasedLayout并返回YES.在这种情况下,updateViewConstraints最初将调用设置约束.
只是猜测而不是100%肯定:
如果视图控制器根视图不需要自动布局,则不会调用updateViewConstraints.因此,您必须至少向根视图(loadview或viewDidLoad中的某个位置)添加一个约束或设置
self.view.translatesAutoresizingMaskIntoConstraints = NO;
Run Code Online (Sandbox Code Playgroud)
这应该触发你的断点.