iOS自动布局框架-Masonry详解

48
发表时间:2018-11-01 00:00作者:ios

目前iOS开发中大多数页面都已经开始使用Interface Builder的方式进行UI开发了,但是在一些变化比较复杂的页面,还是需要通过代码来进行UI开发的。而且有很多比较老的项目,本身就还在采用纯代码的方式进行开发。

而现在iPhone和iPad屏幕尺寸越来越多,虽然只需要根据屏幕点进行开发,而不需要基于像素点进行UI开发。但如果在项目中根据不同屏幕尺寸进行各种判断,写死坐标的话,这样开发起来是很吃力的。

所以一般用纯代码开发UI的话,一般都是配合一些自动化布局的框架进行屏幕适配。苹果为我们提供的适配框架有:VFL、UIViewAutoresizing、Auto Layout、Size Classes等。

其中Auto Layout是使用频率较高的布局框架,但是其也有弊端。就是在使用NSLayoutConstraint的时候,会发现代码量很多,而且大多都是重复性的代码,以于好多人都不想用这个框架。

后来Github上的出现了基于NSLayoutConstraint封装的第三方布局框架Masonry,Masonry使用起来非常方便,本篇文章就详细讲一下Masonry的使用。

Masonry介绍

这篇文章只是简单介绍Masonry,以及Masonry的使用,并且会举一些例子出来。但并不会涉及到Masonry的内部实现,以后会专门写篇文章来介绍其内部实现原理,包括顺便讲一下链式语法。

什么是Masonry

Masonry是一个对系统NSLayoutConstraint进行封装的第三方自动布局框架,采用链式编程的方式提供给API。系统AutoLayout支持的操作,Masonry都支持,相比系统API功能来说,Masonry是有过之而无不及。

Masonry采取了链式编程的方式,代码理解起来非常清晰易懂,而且写完之后代码量看起来非常少。之前用NSLayoutConstraint写很多代码才能实现的布局,用Masonry少一行代码就可以搞定。下面看到Masonry的代码就会发现,太简单易懂了。

Masonry是同时支持Mac和iOS两个平台的,在这两个平台上都可以使用Masonry进行自动布局。我们可以从MASUtilities.h文件中,看到下面的定义,这就是Masonry通过宏定义的方式,区分两个平台独有的一些关键字。


分享到:
微信公众号
关于我们

联系我们
免责声明
网站地图


学习路线图

Web前端学习路线
Java前端学习路线
Python前端学习路线Web前端学习路线
Web前端学习路线
Web前端学习路线
热门课程

Java | HTML5
Python | 大数据
全媒体 | UI/UE
云计算 | 软件测试
网络安全 | 物联网
Unity | 影视剪辑
先领券再学习,最高可减免3000元学费
19526651949
24小时在线咨询
热点话题

零基础学IT IT学习笔记 IT技术干货 IT培训机构 IT应聘面试 IT职场就业