官方文档介绍
- mas_updateConstraints:在 block 中创建的约束,会在 block 结束的时候添加到目标视图上。如果添加的约束已存在,则会将已存在的约束更新为最新添加的。
- mas_remakeConstraints:在 block 中创建的约束,会在 block 结束的时候添加到目标视图上。之前添加的所有约束都会被移除。
示例:
已添加约束的视图:
[self.lineView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.contentView).offset(66);
make.right.equalTo(self.contentView).offset(-22);
make.bottom.equalTo(self.contentView).offset(-10);
make.height.equalTo(@0.5);
}];
调用 mas_updateConstraints:
[self.lineView mas_updateConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(self.contentView).offset(0);
}];
上述代码的执行结果:
- left、right、height 约束不变。
- 将 bottom 更新为 0。
调用 mas_remakeConstraints:
[self.lineView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(self.contentView).offset(0);
}];
上述代码的执行结果:
- 移除所有约束:left、right、height、bottom。
- 添加新的约束:bottom。
应用场景
- mas_updateConstraints:用于更新某一条约束。
- mas_remakeConstraints:用于重新构建视图的约束。
删除某一约束
// 1.声明约束属性
@property (nonatomic, strong) MASConstraint *constraint;
[self.lineView mas_remakeConstraints:^(MASConstraintMaker *make) {
// 2.持有约束
self.constraint = make.bottom.equalTo(self.contentView).offset(0);
}];
//3.删除约束
[self.constraint uninstall];