iOS布局之Masonry框架简单解读

iOS布局有很多种方式,找到一种适合你的并且被大家都认可的框架,然后熟练掌握它就可以了。我的选择Masonry。

masonry框架解读思路

masonry总共有十个类文件,其中最总要的有四个,View+MASAdditions、MASConstraintMaker、MASConstraint、NSArray+MASAdditions。熟练掌握这四个类你就掌握了masonry的核心。

这四个类也可以分解开来,View+MASAdditions和NSArray+MASAdditions可以归纳为一组,一个是对单个view设置约束,一个是对一组view设置约束;MASConstraintMaker内包含非常多的MASConstraint对象负责设置约束;MASConstraint是约束的属性。

在View+MASAdditions和NSArray+MASAdditions有三分方法,mas_makeConsstaint、mas_updateMakeConsstaint、mas_reMakeConsstaint三个方法,这三个方法分别负责添加,更新,重设约束,在回调中通过MASConstraintMaker对象给视图添加约束条件。

masonry更新约束注意事项

在vc中,通过- (void)updateViewConstraints{  }方法来更新约束,在view中通过 - (void)updateConstraints {  }方法更新约束,在masonry中更新约束并不会立即生效,需要我们来触发。setNeedsUpdateConstraints方法告诉视图有约束需要跟新(推测内部是添加了监听事件),updateConstraintsIfNeeded这个方法并不是必须的,但是有时候不调用就无法起到我们的效果。但是,官方都是这么写的,从约束的更新原理上讲,这应该写上。出发约束更新的方法layoutIfNeeded。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS网络编程读书笔记 Facade Tester客户端门面模式的实例(被动版本化) 被动版本化,所以硬编码URL...
    melouverrr阅读 1,626评论 3 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,948评论 18 139
  • AFHTTPRequestOperationManager 网络传输协议UDP、TCP、Http、Socket、X...
    Carden阅读 4,384评论 0 12
  • 从哪说起呢? 单纯讲多线程编程真的不知道从哪下嘴。。 不如我直接引用一个最简单的问题,以这个作为切入点好了 在ma...
    Mr_Baymax阅读 2,831评论 1 17
  • 离除夕还有两天,姥姥一直催着妈妈送她回家。来了20多天,经常挂在嘴边的一句话就是,怕给你们添麻烦。 其实从暑假照顾...
    那就一起等风来吧阅读 233评论 0 0