利用模型属性存cell的高度

一个模型对应一个cell的高度,所以把cell的高度变为模型的属性,这样的解决更彻底,一个模型对应一个自己的属性

把一个对象跟一个东西关联起来,设计一对一的思路:

1.字典,可以变成key和value的关系

2.用模型属性,可以变成对象和属性的关系

把高度写为模型类的属性,然后在.h中重写get方法,由于有了属性就有了成员变量,所以先判断是否为0,如果不为0,代表存在,已经计算过,直接if(_cellHeight) return ,如果为0,则累加,累加,累加,返回,这样就封装到了模型类内部

把模型对应的cell高度缓存到成员变量中去

在heightForRow方法中,根据行号从模型数组中获取到模型后,直接返回模型对象的高度

模型数据决定高度,模型数据多,高度就高,所以简而言之,模型决定高度,取出模型对应的高度合情合理

默认从数组内部取出来的是id类型,id类型的东西是不能用点语法的

所以这样直接写是错的 self.topics[indexPath.row].cellHeight,这里用到了泛型,如果定义数组属性的时候,如果不定义泛型,它里面的元素类型就是泛型,里面什么都可以装,所以这样写:@property(nonatomic,strong)NSMutableArray<Topic *> *topic,这样写了之后就可以用点语法了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容