Masonry自动计算cell行高:HYBMasonryAutoCellHeight

前言


还在手动计算UITableViewCell的行高吗?还在每次都因为需求变化一点就要大量调整cell的高度而烦恼吗?现在教大家如何通过Masonry的自动布局来实现自动计算cell的行高!!!

github没有找到基于Masonry自动计算行高的库,倒是找到了使用xib/storyboard在添加约束来自动计算行高的库,如: UITableView-FDTemplateLayoutCell

本人非常推崇Masonry来实现代码的自动布局,因此项目中都是使用Masonry布局的,为了自动计算行高,决定写一个扩展,以达到自动计算的效果,如此一来,开发者不用再关心那些非固定行高的cell的动态计算问题了。

设置关键依赖


要想自动计算出cell的行高,我们还需要指定以哪个视图作为cell的最后一个视图,比如我们最后要添加一条线,我们可以以这条线作为hyb_lastViewInCell,如果这条线还需要距离底部一定距离,那么可以设置hyb_bottomOffsetToCell

计算行高API


要计算行高,只需要在UITableView的计算行高的代理方法中调用此API即可:

在调用时,config传回来了cell对象,需要在调用处调用方法来配置好数据,才能正确地计算出cell的行高。通常是这样调用的:

实现例子


效果图如下:

我们看下实现-initWithStyle: reuseIdentifier:方法,因为我们要自动计算cell行高会自动调用此方法,因此一定要实现此方法来布局:

注意到这两行代码了吗:

先是设置哪个视图作为cell的最后一个视图,然后设置了最后一个参考视图与cell的底部的距离。其中,self.hyb_lastViewInCell属性是必须要设置的,否则会抛出异常。

使用


这个组件是开源的,而且是支持cocoapods的,因此大家若是使用了cocoapods来管理项目第三方库,可以这样使用:

如果项目未使用cocoapods,直接下载源代码,然后将HYBMasonryAutoCellHeight文件夹拖入工程即可使用!

源代码


大家可以到github下载源代码来看看,内部实现很简单,当然要实现自动计算行高也是有系统方法的,不一定需要像笔者这样来实现。

下载源代码:https://github.com/CoderJackyHuang/HYBMasonryAutoCellHeight

喜欢就给个star

关注我


如果在使用过程中遇到问题,或者想要与我交流,可加入有问必答QQ群:324400294

关注微信公众号:iOSDevShares

关注新浪微博账号:标哥Jacky


你可能感兴趣的:(iOS)