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 注意事项相关推荐

  1. Swift SnapKit布局注意事项

    SnapKit布局注意事项 Snapkit 简单布局Demo 常见问题一:updateConstraints 常见问题二:snapkit更改布局动画效果 常见问题三:两个自适应宽度控件,导致右边的自适 ...

  2. mansory使用记录NSLayoutConstraint-代码实现自动布局

    –学习博客: iOS8自动调整UITableView和UICollectionView布局 http://www.tuicool.com/articles/mQjeM3z NSLayoutConstr ...

  3. C++ OP相关注意事项

    C++ OP相关注意事项 Paddle中Op的构建逻辑 1.Paddle中Op的构建逻辑 Paddle中所有的Op都继承自OperatorBase,且所有的Op都是无状态的,每个Op包含的成员变量只有 ...

  4. Hashing散列注意事项

    Hashing散列注意事项 Numba支持内置功能hash(),只需__hash__()在提供的参数上调用成员函数即可 .这使得添加对新类型的哈希支持变得微不足道,这是因为扩展APIoverload_ ...

  5. android 读取asset下的文件注意事项

    注意事项:file:后面是三个斜杠,后面是android_asset,在后面就是html的名字.

  6. Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项(转)

    Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项 参考:https://blog.csdn.net/weixin_40475396/article/detail ...

  7. 【整理】NSTimer使用及注意事项

    一.NSTimer的创建 // 创建一个定时器,但是么有添加到运行循环,我们需要在创建定时器后手动的调用 NSRunLoop 对象的 addTimer:forMode: 方法. + (NSTimer ...

  8. WIN7源码安装Apache和PHP注意事项

    安装注意事项. 你注意下下载PHP,Apache的网站,上面有提示要安装Visual C++库的. Apache2.4.4需要VC10库支持,Microsoft Visual C++ 2010 SP1 ...

  9. html语言书写注意事项,CSS命名规范参考及书写注意事项

    CSS书写顺序 *{ /*显示属性*/ display position float clear cursor - /*盒模型*/ margin padding width height /*排版*/ ...

最新文章

  1. delphi XE2-新的里程碑
  2. 使用Lua编写whireshark插件
  3. 计算广告 pdf_小学生PDF格式的试卷怎么编辑修改
  4. Angular 2 JIT vs AOT
  5. 【JS】教你如何在对象内任意位置插入任意属性
  6. UVA455 Periodic Strings【水题】
  7. Django 输出二维码
  8. 收藏 | 数据资源下载网址大全
  9. python安装pyqt4_PyQt4 64位下载 PyQt4 for python2.7 v4.8.5 64位 windows 官方简体中文安装版 下载-脚本之家...
  10. 虚拟机运行出现蓝屏解决 win11
  11. 关于Gstreamer出现“Could not send sticky events”的机制探究
  12. Linux 使用ffmpeg修改和压缩视频文件格式
  13. SVN :one or more files are in a conflicted state 一个或多个文件处于冲突状态
  14. SPI Flash/Nor Flash/Nand Flash
  15. 输入你的密码来连接到_手机无线网络可以连接但上不了网如何解决【详解】
  16. spider for qsbk
  17. 前端企业级的开源项目
  18. php 邮币卡源码,如何使用CSS的Grid布局实现小松鼠邮票的效果(附源码)
  19. 大数分解Pollard_rho模板
  20. 突然无法访问局域网内的共享文件夹

热门文章

  1. 使用python,目前最全的Python使用手册
  2. python使用手册
  3. 6.2 基础有大用——《逆袭大学》连载
  4. 男朋友的内裤旧了不要扔,关键时刻有大用......
  5. 基于Singer混沌映射的麻雀搜索算法-附代码
  6. 51单片机实现跟随小车
  7. 微信群高效轻松拉人进群,轻松每日爆粉
  8. 使用路由器搭建机器人局域网,进而远程机器人主机
  9. 2019云渲未来·CG产业峰会落幕,云云众生互联无界
  10. python爬收费小说_使用python+selenium爬小说