Latest 1.0.2
Homepage https://github.com/i-phil/PZViewAutoHeight
License MIT
Platforms ios 6.0, requires ARC
Authors

基于自动布局的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).很多都是通过indePath去缓存Cell高度,而我是通过数据+cell去缓存

pod支持

pod 'PZViewAutoHeight'

致谢

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

联系我

邮箱:[email protected]

Latest podspec

{
    "name": "PZViewAutoHeight",
    "version": "1.0.2",
    "summary": "u57fau4e8eautoLayoutu7684u81eau52a8u8ba1u7b97cellu7684u884cu9ad8u7684u6269u5c55u5e93",
    "homepage": "https://github.com/i-phil/PZViewAutoHeight",
    "license": "MIT",
    "authors": {
        "Phil Zhang": "[email protected]"
    },
    "platforms": {
        "ios": "6.0"
    },
    "source": {
        "git": "https://github.com/i-phil/PZViewAutoHeight.git",
        "tag": "1.0.2"
    },
    "source_files": [
        "PZViewAutoHeight",
        "*.{h,m}"
    ],
    "requires_arc": true
}

Pin It on Pinterest

Share This