Nik*_*Nik 1 objective-c ios autolayout swift
我想在代码中以编程方式更新约束.我已将它们添加到storyboard控制器中.我为约束制作IBOutlet并连接它们.我添加了值,updateViewConstrains()但它不起作用:
func updateViewConstraints() {
centerYConstraint.constant = 60
super.updateViewConstraints()
}
Run Code Online (Sandbox Code Playgroud)
IBOutlet在您的viewController.h文件中创建一个:
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *nameButtonVerticalConstraint;
Run Code Online (Sandbox Code Playgroud)
现在将其与相关的autolayout约束连接:

现在您可以像这样简单地更改约束:
self.nameButtonVerticalConstraint.constant=25;
Run Code Online (Sandbox Code Playgroud)
如果您想要更平滑的过渡,可以将其放在动画块中:
[UIView animateWithDuration:1.2 delay:1 options:UIViewAnimationOptionCurveEaseInOut animations:^{
self.nameButtonVerticalConstraint.constant=50;
[self.view layoutIfNeeded];
} completion:nil];
Run Code Online (Sandbox Code Playgroud)
编辑:这是本文的摘录
如果由于更新上述约束而影响其他约束,则还必须调用以下内容:
[viewForUpdate setNeedsUpdateConstraints];
Run Code Online (Sandbox Code Playgroud)
现在,通过调用layoutIfNeeded动画块内部来设置动画.
| 归档时间: |
|
| 查看次数: |
5528 次 |
| 最近记录: |