美文网首页iOS 进阶
iOS-如何计算cell高度/自定义不等高cell

iOS-如何计算cell高度/自定义不等高cell

作者: IMKel | 来源:发表于2017-09-04 12:36 被阅读72次

先把关键代码粘贴出来给大家看,总体思路是酱紫的。
1.给模型cell添加一个辅助属性,用来保存cell高度,笔者这里辅助属性名称叫做cellHeight
2.根据indexPath.row拿出对应的cell,如果cell的cellHeight属性值为0,那么就去计算cell的高度,然后保存到cellHeight中,再将cellHeight返回出去。
3.如果cell的cellHeight属性值不为0,那么直接返回出去就OK了。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    FKTopicDetailModel *topicDetailModel = self.topicDetailModelArrM[indexPath.row];
    
    if (topicDetailModel.cellHeight == 0) {
        
        CGSize textSize = CGSizeMake(KEY_WINDOW.width - 2 * 16, MAXFLOAT);
        
        NSDictionary *textAttr = @{NSFontAttributeName : CHINESE_PingFangRegular(15)};
        
        CGFloat height = [topicDetailModel.topicDescription boundingRectWithSize:textSize options:NSStringDrawingUsesLineFragmentOrigin attributes:textAttr context:nil].size.height;
        
         // cellBaseHeight方法是用于获取固定高度值的。
        topicDetailModel.cellHeight = [FKTopicTvCell cellBaseHeight] + height;
    }
    
    return topicDetailModel.cellHeight;
}
注意点:

计算文本高度时,笔者这里调用了boundingRectWithSize:options:attributes:context:方法,切记第二个枚举参数不要传kNilOptions(笔者经常传kNilOptions,偷懒嘛,哈哈),kNilOptions实际上等于0,但是这个方法的枚举0对应的值是不存在的,如果穿入kNilOptions那么字符串高度计算就会失败。

相关文章

  • iOS-如何计算cell高度/自定义不等高cell

    先把关键代码粘贴出来给大家看,总体思路是酱紫的。1.给模型cell添加一个辅助属性,用来保存cell高度,笔者这里...

  • cell的等高与不等高

    自定义等高的cell 等高的cell 所有cell的高度是一样的 纯代码创建 frame 1,新建一个继承自UIT...

  • 自定义等高的cell

    自定义等高的cell 等高的cell 所有cell的高度是一样的 纯代码创建 frame 1,新建一个继承自UIT...

  • iOS 自适应常见需求

    1、在自定义cell的高度的时候,动态计算cell的高度(主要是计算cell上的label根据内容自适应的高度) ...

  • iOS-谈一谈自适应Cell的高度缓存

    iOS-谈一谈自适应Cell的高度缓存 iOS-谈一谈自适应Cell的高度缓存

  • 自定义不等高cell

    自定义不等高cell 自定义不等高cell(纯代码) 给模型增加frame数据 所有子控件的frame cell...

  • iOS UITableView性能优化

    1. 最基本的:cell重用机制 2.当自定义不等高cell时,行高要提前计算好,或者先给个预估高度(一般为200...

  • UITableView(自定义cell)(2)

    自定义不等高cell frame方法 给模型增加frame数据 所有子控件的frame cell的高度 重写模型c...

  • 1.0不等高cell计算举例

    不等高cell高度计算 1.首先看效果图 2.重难点: 对于本例来讲最重要的就是计算cell的高度,以及理解mvc...

  • 自定义非等高cell

    非等高的cellxib自定义cell(重点)在模型中增加一个cellHeight属性,用来存放对应cell的高度在...

网友评论

    本文标题:iOS-如何计算cell高度/自定义不等高cell

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