UITableView-FDTemplateLayoutCell与Masonry结合的妙处
最近在看🐑神的博客,发现里面的优化UITableViewCell高度计算的那些事这篇博客写的很精髓。🐑神是用storyboard写的。然后我参照🐑神UITableView-FDTemplateLayoutCell的demo,自己写了一个UITableView-FDTemplateLayoutCell结合Masonry去写的cell布局。在这途中遇到不少坑,主要就是Masonry用的不熟练。Masonry的详细用法
点击蓝色的可以到库的解释文档。
先上效果图,然后再一步一步讲解。讲解的不是很好。求大神指点。
demo.gif这里的话就不说数据的解析了。因为我是本地的json数据解析。直接开始cell的布局。
结构图.png图上的0,1,2,3,对应的cell(TableViewCell)里面的view。在这里我是把这个cell分为了4个模块。创建极其初始化。
板块0publicView的创建(适配代码在讲完版块3创建之后)
创建.png板块一TopGroupView的创建
版块1.png布局代码,里面有解释
板块一代码.png板块二MidGroupView的创建
板块二.png![版块二代码.png . . .].png](http:https://img.haomeiwen.com/i1027569/d0f0ec7f761de359.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
板块三UnderGroupView的创建
板块三.png 板块三代码.png最后来到publicView版块0的布局
版块0代码.png这样就把全部布局搞定了。就可以看到效果图了。
观察🐑神的demo。
观察🐑神的demo.png在这里可以发现。当如果是用纯frame的计算时候,是要进行上面代码的操作。并且cell.fd_enforceFrameLayout = NO;默认是等于YES的。在使用Masonry时候不用进行这些操作。
这个使用🐑神的库很简单,只需要导入
"UITableView+FDTemplateLayoutCell.h"
"UITableView+FDTemplateLayoutCell.m"
然后在结合Masonry使用就可以了。
来到最后一步
这个方法在🐑神类里面已经封装好了。直接调用就可以。
写这个方法.png
写完了。感觉表达能力还是很差。很多都不知道怎么表达。不过还是希望可以帮到各位。有什么问题可以留言我,我看到就会马上回的。
网友评论
https://github.com/zhenglibao/FlexLib
大神有没有遇到label太多行时高度计算不准的情况啊?
<NSLayoutConstraint:0x600000084380 UITableViewCellContentView:0x7fba75c36120.width == 0>,怎么解决 ?
** FDTemplateLayoutCell ** calculate using auto layout - 0.5
2,对于Cell内容是变化的,即高度也是变化的时候,fd的缓存会有问题吧。