前言
之前我们画UI都是使用frame计算对控件布局的,随着iPhone尺寸的多样化,苹果自己也推出了各种各样的布局方式:Autoresizing
、aotulayout
,VFL
。我们开发也逐渐的转向自动布局,aotulayout在xib上布局还是用的挺好,但是对于不用xib的同学来说只能选择VFL进行代码布局了,但是了解VFL的同学都知道其格式复杂、问题不好找,关键不是所有的同学都会VFL你写的代码别人也不好维护了。后来有个第三方框架Masonry出现了感觉拯救了使用代码自动布局的同学们。由于本章项目基于Swift语言的,所以我们使用的是SnapKit框架(Masonry的Swift版本)。本章主要通过实例演练一个UI布局来对比下代码编程中VFL和SnapKit到底哪个用的爽,并不对其进行详细讲解,需要了解他们用法的童鞋可以到github上看文档或者去网上搜索自己想要的资料。
demo演示
我们先看下demo的最终效果图:
该demo演示布局参考了新浪微博cell的样式,主要包括头像、昵名、时间、来源、更多、正文、转发正文、图片列表、工具栏等控件。在实战之前最好去微博看下它的布局,然后再看本篇文章代码就会更加清晰了。
横屏效果图:
竖屏更多内容效果图:
控件的创建及初始化:
为了节省本文空间,就使用VFL控制器中的控件创建代码(VFL和SnapKit创建代码一致的除标题)。
VFL
|
|
SnapKit
|
|
小结
如果你自己将上面的demo自己敲一遍的话就会发现SnapKit比VFL好用了,SnapKit主要体现在条理清晰,不会像VFL那样一个空间的布局可能存在多个VFL语句中。如果VFL中出现了一个bug我觉得你要找好久,而使用SnapKit则方便维护与更新。是不是有想学习SnapKit的冲动了,SnapKit还是很好用的把上面的demo敲一遍基本的布局难不倒你了!