在哪里更新自动布局常量?

NOr*_*der 4 ios autolayout ios6 ios7

如果我需要更新视图的框架,我可以将该代码放入-(void)viewWillLayoutSubviews如下:

- (void)viewWillLayoutSubviews {
    self.demoView.frame = CGRectMake(0, 0, 10, 10);
}
Run Code Online (Sandbox Code Playgroud)

或者在视图的方法中- (void)layoutSubviews.

但是,如果我现在使用autolayout,并且我需要NSLayoutConstraint在代码中更新对象动态,我不知道将代码放在哪里self.demoWidthConstraint = 10

Mik*_*ard 9

您可以在任何地方调整现有约束,layoutIfNeeded然后再调用.

要为更改设置动画,请执行以下操作:

self.demoConstraint.constant = 10;
[UIView animateWithDuration:duration animations:^(void) {
    [self.view layoutIfNeeded];
}];
Run Code Online (Sandbox Code Playgroud)