美文网首页
iOS 计算cell高度

iOS 计算cell高度

作者: 清晰00 | 来源:发表于2017-09-18 11:02 被阅读197次

    1.手动计算

    适用于纯代码,根据model里面的数据,用一堆if else 判断 加 文字高度计算 来获得每一行cell的总体高度,比如像微博列表

    需要计算富文本高度+根据图片个数计算高度+根据是否存在卡片+地理位置等,依次增加对应的高度

    此方法,很麻烦,漏写或情况很多的时候容易出错,不做高度缓存的话,会存在卡顿情况

    但也是最稳定靠谱的计算方法 ,可以利用 "sizeThatFits"

     CGSizeretSize = [_personInfoSignView.desLabel sizeThatFits:CGSizeMake(SCREEN_WIDTH-30,CGFLOAT_MAX)]; 准确得到高度


    2.利用FDTemplateLayoutCell

    是github开源库forkingdog

    具体介绍如下: http://blog.sunnyxx.com/2015/05/17/cell-height-calculation/

    已经封装的很好了,适用于xib

    做好xib约束,用此库计算cell的高度,其中需要注意的一点是label的高度自适应需要增加一句代码:  self.testLabel.preferredMaxLayoutWidth = [UIScreen mainScreen].bounds.size.width - 30;

    或者xib上勾选上如下的对勾:

    对勾勾选

    比如 一个"更多"按钮,点击可以显示所有的label上的文字,实现方法很简单:heightForRowAtIndexPath如下写 :     

      return [tableView fd_heightForCellWithIdentifier:MyJianCellIdentifier configuration:^(CourseIntroduceCell *cell) {

    [cell smk_configure:cell model:model indexPath:indexPath];//cell 赋值model

    }];

    按钮的点击方法点击更改 label的numberOfLines = 0, 就可以实现了,展开全文,收起全文了。

    工程中实际应用时,需要用model来记录下 每行cell的 numberOfLines 即可。

    还有一篇文章参考,关于tableView的流畅度的(FPS=60) 优化的,写的不错http://blog.csdn.net/songchunmin_/article/details/52781691

    相关文章

      网友评论

          本文标题:iOS 计算cell高度

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