Mansory makeConstraints 、remakeConstraints 、updateConstraints 注意事项
来源:互联网 发布:淘宝帐号俩个手机登陆 编辑:程序博客网 时间:2024/06/08 11:52
1 mas_makeConstraints 只负责新增约束,Autolayout 不能同时存在两条针对于同一对象约束 否则会报错
注意:在添加约束之前一定要添加到view( [self.view addSubview:aView])上 否则会报错
[aView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(view1.mas_left).offset(10);
make.bottom.equalTo(view2.mas_bottom).offset(-2);
make.height.mas_equalTo(@(70));
make.width.mas_equalTo(@(50));
}];
2 mas_remakeConstraints 会清除之前的所有约束 仅保留最新的约束
如下:会清除原来的以view1 和view2 为参照的约束 保留 以view3 和view4 为参照的约束
[aView mas_remakeConstraints :^(MASConstraintMaker *make) {
make.bottom.equalTo(view3.mas_top).offset(-10);
make.centerX.equalTo(view4.mas_centerX);
make.height.mas_equalTo(@(70));
make.width.mas_equalTo(@(50));
}];
3 mas_updateConstraints 针对上面的情况 会更新block中出现的约束 不会导致出现两个相同的约束的情况
注意: 同一个对象 使用mas_updateConstraints 一定要保证 block中要更新的元素是 其使用mas_makeConstraints 设置的约束
如下就是正确的 则不会出现约束冲突问题
[aView mas_updateConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(view1.mas_top).offset(-60);
必须是 同一参照对象(都是以view1)同一参照属性(都是以view1的mas_top)
}];
但是下面的就不对了 就会出现约束冲突 在iOS 7 及其以下会出现由于约束冲突出现的崩溃
[aView mas_updateConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(view2.mas_top).offset(-10);
make.centerX.equalTo(view4.mas_centerX);
原因1:不同一参照对象 (原来是view1 现在是view2)
原因2: aView 在 mas_makeConstraints中没有设置 center 所以无法更新
}];
解决办法:使用mas_remakeConstraints 清除原来的约束 重新设置约束;
}];
- Mansory makeConstraints 、remakeConstraints 、updateConstraints 注意事项
- updateViewConstraints和updateConstraints
- updateViewConstraints和updateConstraints
- updateViewConstraints和updateConstraints
- Mansory 算法分析
- Mansory算法分析
- mansory使用记录
- Mansory 基本用法
- Mansory设置控件时的约束问题
- 使用Masonry的时候进行updateConstraints没有效果
- Mansory之一 :mas_equalTo和equalTo区别与使用
- 【iOS开发】Mansory自动布局(autolayout)使用教程
- 注意事项!
- 注意事项
- 注意事项
- 注意事项
- 注意事项
- 注意事项
- Maven安装与入门实例
- datatables 添加复选框及序号列及使用ajax请求
- KMP(1)--hdu2203(简单KMP模板)
- linux 服务器时间同步
- 各国货币的研究
- Mansory makeConstraints 、remakeConstraints 、updateConstraints 注意事项
- 中文乱码解决方案
- java的calendar类常见日期处理
- Unity3d ugui(3) button按钮
- Java中的OOM
- Java学习笔记 Struts常用相关配置
- 【Bootstrap3.0建站笔记一】表单元素排版
- Rikka with Parenthesis II
- kaggle项目实战一