iOS - Masonry自动布局
简介:
相对于官方的NSLayoutConstraints的的过于繁琐和麻烦,Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性 而且同时支持 iOS 和 Max OS X。可以到Masonry-Github下载官方源码Demo
安装:
1.直接进入github进行源码下载 引入头文件#import "Masonry.h"
2.使用CocoaPod进行下载pod 'Masonry'
简单使用
- 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 文本基线
- Masonry的属性:
- 最常用的三种加约束的方式:
//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自动布局相关推荐
- IOS Masonry自动布局
之前项目用Frame布局,这个项目登录用了VFL,后来觉得用Masonry,前天布局TableViewCell时用了下 ,觉得还不错. #import "Masonry.h" #i ...
- Masonry自动布局详解一:基本用法
Masonry自动布局详解一:基本用法 说到iOS自动布局,有很多的解决办法.有的人使用xib/storyboard自动布局,也有人使用frame来适配.对于前者,笔者并不喜欢,也不支持.对于后者,更 ...
- Masonry自动布局详解五:比例(multipliedBy)
Masonry自动布局详解五:比例(multipliedBy) 标签: iosmasonryautolayout自动布局约束 2015-11-30 16:30 1816人阅读 评论(0) 收藏 举报 ...
- iOS Masonry
文章目录 Masonry简介 Masonry主要的类和常用api Masonry基本使用 Masonry结构与源码简单解析 Masonry使用技巧与注意事项 Masonry简介 Masonry利用简化 ...
- iOS Masonry 布局- UIScrollView/Masonry自动布局对UIScrollView的内容自适应
2020年10月13日13:26:37「复习」 控制器中布局一般基础都是以UIscrollview为底部视图进行绘制的,方便我们进行屏幕适配. 在使用masonry布局的时候如何让UIscrollvi ...
- iOS Masonry的使用详解
Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有高可读性,而且同时支持 iOS 和 Max OS X.Masonry是一个用代码写iOS或OS ...
- 第三方库Masonry自动布局AutoLayout使用
布局: 1. 放在哪 坐标 CGPoint(x, y) 2. 有多大 尺寸 CGSize(width, height) 布局方式: 1.绝对布局(FrameLayout)也称 坐标布局 ...
- iOS Masonry介绍与使用实践(快速上手Autolayout)
前言 MagicNumber -> autoresizingMask -> autolayout 以上是纯手写代码所经历的关于页面布局的三个时期 在iphone1-iphone3gs时代 ...
- IOS Masonry介绍与使用实践:快速上手Autolayout
转载大神:http://www.cocoachina.com/ios/20141219/10702.html 前言 MagicNumber -> autoresizingMask -> a ...
最新文章
- Expo大作战(三十六)--expo sdk api之 ImagePicker,ImageManipulator,Camera
- office2003/2007/2010如何卸载干净
- eclipse:解决修改文件需要重启tomcat问题
- ant引入html页面,antdesign 中 使用 iconfont symbol方式引入图标不展示
- 你初吻啥时候没有的​?​
- docker 查询或获取私有仓库(registry)中的镜像
- SPS2003升级到MOSS2007相关资料及问题总结
- Session 'app': Installation did not succeed.The application could not be installed: INSTALL FAILED I
- 给图像添加噪声,高斯噪声、椒盐噪声
- Socket编程:之TCP案例
- git拉取远程分支并创建本地分支和Git中从远程的分支获取最新的版本到本地
- 4个优化方法,让你能了解join计算过程更透彻
- 实训项目四 powerpoint 综合应用_【深化改革结硕果】新疆番茄综合精深加工关键技术及产业化应用项目取得重大突破...
- 应急响应之ARP欺骗
- 筑业软件加密锁驱动_如何在不使用额外软件的情况下对USB驱动器进行加密和密码保护...
- [转载]计算机视觉专业名词中英文对照
- 微型计算机原理与接口技术AD实验报告,微机原理与接口技术AD转换综合实验报告.doc...
- TIFF文件结构详解
- shape (0,) 是什么意思
- 滴滴交通云落地济南 提速城市“智慧交通”建设
热门文章
- 数据结构链表之单链表的快慢指针——3
- LeetCode 1780. 判断一个数字是否可以表示成三的幂的和(位运算)
- LeetCode 1214. 查找两棵二叉搜索树之和(二叉树迭代器+双指针)
- LeetCode 1222. 可以攻击国王的皇后(set)
- 程序员面试金典 - 面试题 08.13. 堆箱子(DP)
- LintCode 125. 背包问题 II(DP)
- oracle 打开 ctl,Oracle 19c 随系统systemctl启动数据库
- win10主题更换_还不升级? win10精简版不到10G,运行比win7还快,旧电脑的福音
- 机器学习算法--ALS
- 自己动手写cpu 光盘_自己动手写CPU配套源码