作者刘文涛
转载请注明出处
前言
说到iOS自动布局,有很多的解决办法。有的人使用xib/storyboard自动布局,也有人使用frame来适配。对于前者,笔者并不喜欢,也不支持。对于后者,更是麻烦,到处计算高度、宽度等,千万大量代码的冗余,对维护和开发的效率都很低。
笔者在这里介绍纯代码自动布局的第三方库:Masonry。这个库使用率相当高,在全世界都有大量的开发者在使用,其star数量也是相当高的。
本文Cell内容通过Masonry自动布局并且cell巧妙利用自动布局计算cell的动态高度。
正文
实现思路:例如cell中有三个label,label1,label2,label3.
1.为label1添加约束(以cell.cntentView为基准)
|
|
2.为label2添加约束 使其在label1下方距离为5处 (以label1为基准)。
|
|
3.为label3添加约束 使其在label2 下方距离为5处 (以label2为基准,重点在于这个一定要在label3 添加一个距离cell。contentView底部的约束)。以上完成cell 子视图的约束。
|
|
4.在tableView heightForRowAtIndexPath 代理中使用一个单独的不显示在屏幕的cell 作为计算cell高度使用,通过下面代码获取cell高度:
|
|
本文demo