需要先调用addsubview方法把yourView添加到父视图上。
1、添加约束
- 使用
mas_makeConstraints
[self.yourView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(100);
make.height.mas_equalTo(30);
make.left.mas_equalTo(20);
make.right.mas_equalTo(-20);
}];
2、移除之前的所有约束,并使用block里面的新约束重新布局
- 使用
mas_remakeConstraints
[self.yourView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(200);
make.height.mas_equalTo(50);
make.left.mas_equalTo(20);
make.right.mas_equalTo(-20);
}];
3、更新约束
- 使用
mas_updateConstraints
[self.yourView mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(400);
}];
4、简易动画
- 使用
mas_updateConstraints
- 如果yourView需要添加动画,必须执行父视图的layoutIfNeeded方法,因为视图动画frame的变动是相对父视图的,所以父视图需要执行layoutIfNeed才会重新布局对应的UI。
- 如果用yourView执行layoutIfNeed只会重新布局,不会产生动画。
- 可以写成
[self.view layoutIfNeeded];
或者[self.yourView.superview layoutIfNeeded];
[UIView animateWithDuration:0.5 animations:^{
[self.yourView mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(600);
}];
[self.view layoutIfNeeded];
}];
网友评论