mas_makeConstraints && mas_remakeConstraints && mas_updateConstraints 用法与注意事项

字数400 阅读117 评论0 喜欢2
1 mas_makeConstraints 只负责新增约束,Autolayout 不能同时存在两条针对于同一对象约束 否则会报错 注意:在添加约束之前一定要添加到view( [testView addSubview:self.view])上 否则会报错 [testView mas_makeConstraints:^(MASConstraintMaker *make) { make.leading.equalTo(view1.mas_trailing).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 为参照的约束 [testView 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 设置的约束 如下就是正确的 则不会出现约束冲突问题 [testView mas_updateConstraints:^(MASConstraintMaker *make) { make.bottom.equalTo(view1.mas_top).offset(-60); 必须是 同一参照对象(都是以view1)同一参照属性(都是以view1的mas_top) }]; 但是下面的就不对了 就会出现约束冲突 在iOS 7 及其以下会出现由于约束冲突出现的崩溃 [testView mas_updateConstraints:^(MASConstraintMaker *make) { make.bottom.equalTo(view2.mas_top).offset(-10); make.centerX.equalTo(view4.mas_centerX); 原因1:不同一参照对象 (原来是view1 现在是view2) 原因2 testView 在 mas_makeConstraints中没有设置 center 所以无法更新 }]; 解决办法:使用mas_remakeConstraints 清除原来的约束 重新设置约束; }];

  

mas_makeConstraints && mas_remakeConstraints && mas_updateConstraints 用法与注意事项的更多相关文章

  1. memset函数用法及注意事项

    头文件 #include<cstring>// or #include<memory.h> ------------------------------------------ ...

  2. 【jQuery】praseFloat()方法的用法及注意事项

    [jQuery]praseFloat()方法的用法及注意事项 praseFloat():  用于解析一个字符串,并返回一个浮点数 语法:                praseFloat(strin ...

  3. join()和fromkeys()的用法与注意事项

    join()和fromkeys()的用法与注意事项 1.join()的用法与注意事项: join()可以使用集合,列表,字符串的子元素,拼接,下面介绍用法: str.join(data) 2.from ...

  4. js 之 continue break return 用法及注意事项

    1,continue continue有两种用法: 1,continue; 这种用法必须包含在循环里,否则报错,例子: for(var i=0;i<10;i++){ if(i%2===0){ c ...

  5. JS中document.createElement()用法及注意事项

    今天处理了一个日期选择器的ie和ff的兼容问题,本来这种情况就很难找错误,找了好久才把错误定位到js中创建元素的方法document.createElement(),这个方法在ie下支持这样创建元素 ...

  6. Oracle的trim( )、ltrim( )、rtrim( )三个函数的用法及注意事项

    学习一下用法整理trim().ltrim().rtrim()的用法 trim().ltrim().rtrim()三个函数有两个作用,分别是: 一.去除字符串前后空格(基本用法) trim(string ...

  7. java中使用switch-case的用法及注意事项超全总结

    http://m.blog.csdn.net/blog/tianyazaiheruan/8988420 今天陈红军老师在用到switch的时候,这种设计到最基本的内容,可能忘记它的一些基本语法,出现了 ...

  8. 【Java基础】6、java中使用switch-case的用法及注意事项超全总结

    1.switch-case注意事项: switch(A),括号中A的取值只能是整型或者可以转换为整型的数值类型,比如byte.short.int.char.还有枚举:需要强调的是:long和Strin ...

  9. 【Java面试题】1 Java中使用switch-case的用法及注意事项超全总结

    今天在用到switch的时候,这种设计到最基本的内容,可能忘记它的一些基本语法,出现了一些错误,所以即兴从各种资料查询总结了下面的内容,希望可以帮助那些正在困扰switch错误和各种细节问题的朋友! ...

随机推荐

  1. LaTeX简单使用方法

    Content LaTeX的用途 LaTeX文件布局 LaTeX的文档格式 公式环境 图的排版 表格的排版 有序列表和无序列表 引用 伪代码 参考文献 LaTeX的用途 LaTeX是一种基于TeX的排 ...

  2. python3 -pip

    https://docs.python.org/3/installing/ ===== pip is the preferred installer program. Starting with Py ...

  3. vue.js 使用小结

    2016年12月10日 17:18:42 星期六 情景: 主要介绍 v-for 循环时对变量的处理方法 主要以table标签为例 1. 为 tr 标签动态添加属性 <tr v-for=" ...

  4. EF jsonignore

    页面单独指定不循环引用 [JsonIgnore] Newtonsoft.Json.JsonSerializerSettings jsSettings = new Newtonsoft.Json.Jso ...

  5. POJ 2299 Ultra-QuickSort 线段树

    题目链接 题意:求冒泡排序的交换次数,即求逆序数,即求对于每个数前面有多少个数比他大,n < 500,000,0 ≤ a[i] ≤ 999,999,999. 题解:因为值较大,个数较少,所以我们 ...

  6. GUI基础学习

    GUI:一.界面元素:1.容器:Jwindow    JFrame    JDidye    JApplet 2.组件:标签,文本框,按钮,下拉列表,文本域,单选框,复选框 二.布局:1.边界布局:B ...

  7. 401 - 未授权:由于凭据无效,访问被拒绝”在iis的解决办法

    1.打开"IIS信息服务管理器"-->选择你发布的网站-->选择功能视图中的"身份验证"-->右键匿名身份验证,选择"编辑" ...

  8. IOS __ 面试题

    1.下面四种内部排序算法中哪一种在最差的情况下时间复杂度最高:(B) A.快速排序 B.冒泡排序 C.堆排序 D.归并排序   2.Shell中,将command1的输出作为command2的输入应该 ...

  9. 实现滑动可固定header以及页面刷新

    用到的布局:SwiperRefreshLayout,AppBarLayout,ToolBar,CollapsingToolbarLayout,CoordinatorLayout 布局 <?xml ...

  10. Android在layout xml中使用include

    Android include与merge标签使用详解 - shuqiaoniu的博客 - 博客频道 - CSDN.NEThttp://blog.csdn.net/shuqiaoniu/article ...