PZViewAutoHeight 1.0.2

PZViewAutoHeight 1.0.2

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最后发布2016年5月

phil Zhang 维护。



  • 作者:
  • Phil Zhang

基于自动布局的 View 自动高度计算
本 demo 基于自动布局库 Masonry,理论上支持任何自动布局库

使用方法超级简单

step 1:UITableViewDelegate

- (CGFloat)tableView:(nonnull UITableView *)tableView heightForRowAtIndexPath:(nonnull NSIndexPath *)indexPath {
    return [Cell heightByData:CellData];
}

step 2:View中有两种写法
方式一:实现- (void)setData:(id _Nullable)data方法,并在其中填充View数据
方法二:如果您已经有了自定义的 View 数据填充方法,那么,您可以在 View 初始化时设置pzSetDataSel为您自定义的 View 数据填充方法

step 3:在 View 初始化时,请指定pzLastSubView为当前 View 的最底部控件,和距离 View 底部的距离pzBottomOffset

完成以上三步设置后就可以使用了
原理:View 在数据填充后,调用一下 View 的layoutIfNeeded即可获取各个控件的frame,以此根据pzLastSubViewpzBottomOffset计算出 View 的高度

Q:为什么做成 View 的扩展,而不是 UITableViewCell 的扩展?
A:由于项目中需要给 UITableView 设置 headerView,而 headerView 也将使用自动布局,我们也想在项目中一行代码就完成高度计算,因此,为了让使用更方便,就将其做成 View 的扩展

Q:网上已经有许多 Cell 自动高度计算的库了,为什么还要重复造轮子?
A:1). 我看了别人写的,大部分写的都很复杂,代码量少则三五百行,多则几千行,极为不便于阅读,因此我编写了这个,只有约 200 行代码,核心代码只有约 20 行
2). 许多都是通过 indenPath 去缓存 Cell 高度,而我则通过数据+cell 去缓存

pod 支持

pod 'PZViewAutoHeight'

致谢

感谢 HYBMasonryAutoCellHeight 的作者给了我灵感
感谢所有使用本开源库的开发者,感谢你们的 expenditures 和 suggestions。

联系我

邮箱:[email protected]