在日常开发中经常需要根据不同的业务场景对控件做不同的展示,如果你是用的自动布局,可以参考一下以下方法。
mas_make Constraints | mas_update Constraints | mas_remake Constraints | |
---|---|---|---|
已有某种约束,再添加 | 不更新约束 | 更新约束 | 更新约束 |
没有某种约束,再添加 | 更新约束 | 更新约束 | 更新约束 |
是否删除已有约束 | 不删除已有约束 | 不删除已有约束 | 删除已有约束 |
举个例子:
某个view默认约束为
[self.footerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.bottom.right.equalTo(self.view);
make.height.equalTo(@70);
}];
//使用以下方法只会更新bottom的约束,其它约束不会变
[self.tableView mas_updateConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(self.view).priorityHigh();
}];
//使用以下方法会删除已有的约束,只会增加bottom的约束
[self.tableView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(self.view).priorityHigh();
}];
//更新页面
[self.view updateConstraintsIfNeeded];
[self.view layoutIfNeeded];