Masonry自动计算cell行高:HYBMasonryAutoCellHeight
来源:互联网 发布:笑气在淘宝怎么搜 编辑:程序博客网 时间:2024/05/17 02:45
前言
还在手动计算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
- Masonry自动计算cell行高:HYBMasonryAutoCellHeight
- Masonry自动计算cell行高:HYBMasonryAutoCellHeight
- Masonry自动计算行高
- Masonry自动计算行高
- 基于Masonry自动计算cell的高度
- UITableViewCell使用Masonry进行自动计算行高的问题
- cell自动计算高度(masonry与UITableView-FDTemplateLayoutCell)
- Masonry的约束布局,scrollView与cell的自动算高
- cell自动计算行高遇到回车换行的问题 UITableView+HYBCacheHeight、UITableView+HYBCacheHeight
- Masonry+FDTemplateLayoutCell 实现Cell自动布局
- Masonry自动布局cell显示高度
- 自动计算cell高度
- tableView - 自定义等高cell(frame和masonry方式)
- iOS 自动计算cell高度
- UITableView自动计算CELL高度
- 根据文件内容自动设置UITableView(cell)行高
- 自动计算cell时候计算不准确
- masonry + 自适应cell高度
- 匿名内部类那点事
- 哈夫曼树结构体数组生成方法
- 游戏地图中两点坐标相对的方向(角度)判断
- 斜45度地图简介、坐标系转换以及数据碰撞
- JavaScript中数组类型的常用操作方法以及属性
- Masonry自动计算cell行高:HYBMasonryAutoCellHeight
- Android Studio——通过java.net.URLConnection发送HTTP请求的方法
- Spring Security(20)——整合Cas
- Masonry自动布局详解一:基本用法
- Upgrading from ZeroMQ v2.2 to ZeroMQ v3.2
- Shell常用命令总结
- STL_算法_复制元素(copy、copy_backward)
- wifi driver install
- FileInputStream和FileReader的区别