美文网首页
tableview的cell自定义高度

tableview的cell自定义高度

作者: JingYa_Lu | 来源:发表于2017-03-09 17:14 被阅读51次

        如果是比较复杂的cell,里边有好多控件,而且有的控件不一定在每个 cell都显示的话,用李明杰给出的思路,挺好。思路大概是,请求数据后,每条数据对应一个模型,然后对应每个模型 ,创建一个frameModeL,给它传入一个数据模型,他会把相应的控件的frame 和整个cell的高度计算好,然后在cell里有一个属性,可以framemodel 的属性,在他的setter方法里直接赋值就好,赋值包括数据 和frame ,应为这个方法是cell滑动就会调用,这样每次调用时,只拿值,不进行计算,节省性能。 而在heightforrow方法里,直接拿到相应的frameModel,然后返回就好。

1.李明杰的思路—FrameModel

创建的framemodel模型,给它传入一个数据model,它会为每个控件生成相应的frame

然后在cell方法里直接赋值就可以了

而在heightforrow里

这就是李明杰讲的思路,拿到数据就会计算,而不是在cell展示的数据再进行计算。把计算的操作放在了后台,所以性能上应该没有问题。

我写的时候不小心写错的地方

lab的字体大小 要和boundrect里的一样,还有注意换行。

如果cell的数目较少,就没有性能的问题,那么大可以用系统的

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

return UITableViewAutomaticDimension;      //自动调整约束,性能非常低,灰常的卡

}

不考虑架构的话, 可以给数据模型增加一个属性, 计算的高度,比较简单粗暴。

相关文章

网友评论

      本文标题:tableview的cell自定义高度

      本文链接:https://www.haomeiwen.com/subject/cbawgttx.html