1. 简介:
    相对于官方的NSLayoutConstraints的的过于繁琐和麻烦,Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性 而且同时支持 iOS 和 Max OS X。

    可以到Masonry-Github下载官方源码Demo

  2. 安装:
    1.直接进入github进行源码下载 引入头文件#import "Masonry.h"
    2.使用CocoaPod进行下载 pod 'Masonry'

  3. 简单使用

    • Masonry的属性:
      Masonry NSAutoLayout 说明
      left NSLayoutAttributeLeft 左侧
      top NSLayoutAttributeTop 上侧
      right NSLayoutAttributeRight 右侧
      bottom NSLayoutAttributeBottom 下侧
      leading NSLayoutAttributeLeading 首部
      trailing NSLayoutAttributeTrailing 尾部
      width NSLayoutAttributeWidth 宽
      height NSLayoutAttributeHeight 高
      centerX NSLayoutAttributeCenterX 横向中点
      centerY NSLayoutAttributeCenterY 纵向中点
      baseline NSLayoutAttributeBaseline 文本基线
  • 最常用的三种加约束的方式:
//mas_makeConstraints 只负责新增约束 Autolayout不能同时存在两条针对于同一对象的约束 否则会报错
- (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *make))block;//mas_updateConstraints 针对上面的情况 会更新在block中出现的约束 不会导致出现两个相同约束的情况
- (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block;//mas_remakeConstraints 则会清除之前的所有约束 仅保留最新的约束
- (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block;

比如,要给一个视图加约束为距父视图上下左右边距都为10

    UIView *subView = [[UIView alloc]init];subView.backgroundColor = [UIColor blackColor];[self.view addSubview:subView];CGFloat margin = 10;[subView mas_makeConstraints:^(MASConstraintMaker *make) {make.left.equalTo(self.view).offset(margin);make.right.equalTo(self.view).offset(-margin);make.top.equalTo(self.view).offset(margin);make.bottom.equalTo(self.view).offset(-margin);}];

也可以这样写:

    UIView *subView = [[UIView alloc]init];subView.backgroundColor = [UIColor blackColor];[self.view addSubview:subView];CGFloat margin = 10;[subView mas_makeConstraints:^(MASConstraintMaker *make) {make.top.left.bottom.and.right.equalTo(self.view).with.insets(UIEdgeInsetsMake(margin, margin, -margin, -margin));}];

或者这样写:

    UIView *subView = [[UIView alloc]init];subView.backgroundColor = [UIColor blackColor];[self.view addSubview:subView];CGFloat margin = 10;[subView mas_makeConstraints:^(MASConstraintMaker *make) {make.edges.equalTo(self.view).with.insets(UIEdgeInsetsMake(margin, margin, -margin, -margin));}];

注意:

  • 在xib或者storyboard中使用masonry框架相关方法的时候要将use Auto layout选项去掉,否则会不起作用。
  • 给一个View加约束前提是该视图有父视图(superView),否则会报错
  • 给一个view1添加约束时与相对的view2之间必须有父子视图或者有一个共同的父视图的关系

转载于:https://www.cnblogs.com/xiubin/p/5086935.html

iOS - Masonry自动布局相关推荐

  1. IOS Masonry自动布局

    之前项目用Frame布局,这个项目登录用了VFL,后来觉得用Masonry,前天布局TableViewCell时用了下 ,觉得还不错. #import "Masonry.h" #i ...

  2. Masonry自动布局详解一:基本用法

    Masonry自动布局详解一:基本用法 说到iOS自动布局,有很多的解决办法.有的人使用xib/storyboard自动布局,也有人使用frame来适配.对于前者,笔者并不喜欢,也不支持.对于后者,更 ...

  3. Masonry自动布局详解五:比例(multipliedBy)

    Masonry自动布局详解五:比例(multipliedBy) 标签: iosmasonryautolayout自动布局约束 2015-11-30 16:30 1816人阅读 评论(0) 收藏 举报 ...

  4. iOS Masonry

    文章目录 Masonry简介 Masonry主要的类和常用api Masonry基本使用 Masonry结构与源码简单解析 Masonry使用技巧与注意事项 Masonry简介 Masonry利用简化 ...

  5. iOS Masonry 布局- UIScrollView/Masonry自动布局对UIScrollView的内容自适应

    2020年10月13日13:26:37「复习」 控制器中布局一般基础都是以UIscrollview为底部视图进行绘制的,方便我们进行屏幕适配. 在使用masonry布局的时候如何让UIscrollvi ...

  6. iOS Masonry的使用详解

    Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有高可读性,而且同时支持 iOS 和 Max OS X.Masonry是一个用代码写iOS或OS ...

  7. 第三方库Masonry自动布局AutoLayout使用

    布局: 1. 放在哪  坐标  CGPoint(x, y)    2. 有多大  尺寸  CGSize(width, height) 布局方式: 1.绝对布局(FrameLayout)也称 坐标布局 ...

  8. iOS Masonry介绍与使用实践(快速上手Autolayout)

    前言 MagicNumber -> autoresizingMask -> autolayout 以上是纯手写代码所经历的关于页面布局的三个时期 在iphone1-iphone3gs时代 ...

  9. IOS Masonry介绍与使用实践:快速上手Autolayout

    转载大神:http://www.cocoachina.com/ios/20141219/10702.html 前言 MagicNumber -> autoresizingMask -> a ...

最新文章

  1. Expo大作战(三十六)--expo sdk api之 ImagePicker,ImageManipulator,Camera
  2. office2003/2007/2010如何卸载干净
  3. eclipse:解决修改文件需要重启tomcat问题
  4. ant引入html页面,antdesign 中 使用 iconfont symbol方式引入图标不展示
  5. 你初吻啥时候没有的​?​
  6. docker 查询或获取私有仓库(registry)中的镜像
  7. SPS2003升级到MOSS2007相关资料及问题总结
  8. Session 'app': Installation did not succeed.The application could not be installed: INSTALL FAILED I
  9. 给图像添加噪声,高斯噪声、椒盐噪声
  10. Socket编程:之TCP案例
  11. git拉取远程分支并创建本地分支和Git中从远程的分支获取最新的版本到本地
  12. 4个优化方法,让你能了解join计算过程更透彻
  13. 实训项目四 powerpoint 综合应用_【深化改革结硕果】新疆番茄综合精深加工关键技术及产业化应用项目取得重大突破...
  14. 应急响应之ARP欺骗
  15. 筑业软件加密锁驱动_如何在不使用额外软件的情况下对USB驱动器进行加密和密码保护...
  16. [转载]计算机视觉专业名词中英文对照
  17. 微型计算机原理与接口技术AD实验报告,微机原理与接口技术AD转换综合实验报告.doc...
  18. TIFF文件结构详解
  19. shape (0,) 是什么意思
  20. 滴滴交通云落地济南 提速城市“智慧交通”建设

热门文章

  1. 数据结构链表之单链表的快慢指针——3
  2. LeetCode 1780. 判断一个数字是否可以表示成三的幂的和(位运算)
  3. LeetCode 1214. 查找两棵二叉搜索树之和(二叉树迭代器+双指针)
  4. LeetCode 1222. 可以攻击国王的皇后(set)
  5. 程序员面试金典 - 面试题 08.13. 堆箱子(DP)
  6. LintCode 125. 背包问题 II(DP)
  7. oracle 打开 ctl,Oracle 19c 随系统systemctl启动数据库
  8. win10主题更换_还不升级? win10精简版不到10G,运行比win7还快,旧电脑的福音
  9. 机器学习算法--ALS
  10. 自己动手写cpu 光盘_自己动手写CPU配套源码