iOS两行代码实现动态缓存 cell 的高度

2017-01-14 10:21:15来源:http://www.jianshu.com/p/32c1b8efc367作者:Mr_Chia人点击

第七城市

在我们的日常开发中要经常动态缓存 cell 的高度,每当这个时候我们都要手动去根据文字内容计算高度,显得啰嗦又麻烦,这里我利用 xib 来快速的实现这个效果


注意

此方法只适用于这种很简单的 cell 布局格式,对于复杂的布局如果运用此方法会出现崩溃现象,我们在写一些简单的评论 cell 布局的时候可以用这个方法来加快开发速度。但是今天在做测试的时候发现控制台对于复杂的 cell 也没有进行约束报错,不知道是不是苹果进行了优化,测试完后再总结!


第一步

利用 xib 来创建我们自定义的 cell,这里我就不多做介绍。



自定义 cell 的布局


如上图,是我自定义的 cell 布局,从图中可以看出我们要想动态缓存 cell 的高度唯一要解决的就是动态计算标红 label 的高度就 OK 了。


第二步

设置 Label 的属性,



Label 换行属性


给 Label 添加约束
选中我们的正文 Label 给他添加约束



添加约束


到此为止我们所有的设置都弄完了,只需要在 controller 里面设置两行代码即可实现


第三步

设置 tablview


tableView.estimatedRowHeight = 200
tableView.rowHeight = UITableViewAutomaticDimension

设置完成后,build 一下就可以看到效果了



效果图
2017.01.02更新:

如果使用这个方法的话,最好不要在重写 cell 的 frame的 setter 方法的时候再改变 cell 的高度,避免发生高度计算错误.




第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台