UITableView性能优化 以及动态计算cell高度 新方法
来源:互联网 发布:软件停止运行怎么回事 编辑:程序博客网 时间:2024/06/06 17:16
UITableView性能优化以及动态计算cell高度的方法
一、
//以下会简称计算cell真实高度方法
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
//以下会简称创建cell方法
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
//以下会简称估算cell高度方法
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(7_0);
以前计算cell高度会优先调用计算cell真实高度方法 这个方法会一次性计算所有cell的高度,非常消耗性能
而且由于是先计算cell高度 才会再去调用创建cell的方法,按照以前计算cell真实高度的方式 是提前在模型里面计算出cell的高度,然后在返回高度的方法里面去取cell对应模型的高度,非常的耗时 费劲
算cell高度方法 是iOS7之后新增加的方法 它是一个估算cell大概高度的方法,最终还是会调用计算cell真实高度方法
1、是会在调用heightForRowAtIndexPath 这个方法之前 调用这个估算高度estimatedHeightForRowAtIndexPath 的方法。
2、接着去调用创建cell的方法
3、接着最后才调用返回heightForRowAtIndexPath 返回cell真实高度的方法
这个不光节省性能 还比较容易实现cell动态高度的计算,在cell里面 传递model进去之后 ,在给所有子控件赋值之后 调用[cell layoutIfNeed] 强制布局,然后 把传递进来的model 设置 他的高度 就可以了 最后在调用heightForRowAtIndexPath 这个返回真实高度的时候得到对应的model就可以设置其真实高度,但是得注意一下提示
使用自动布局时 当你强制进行布局,计算label高度会有问题 需要设置
textLabel.preferredMaxLayoutWidth = 设置label的最大尺寸;
- UITableView性能优化 以及动态计算cell高度 新方法
- UITableView性能优化---自动计算cell高度(FDTemplateLayoutCell)
- UITableView使用AutoLayout动态计算cell高度
- UITableView 如何不动态计算返回的cell 的高度
- UITableView 如何不动态计算返回的cell 的高度
- UITableView性能优化之cell的高度缓存
- UITableView自动计算CELL高度
- UITableView动态改变Cell高度
- UITableView动态改变Cell高度
- 动态计算cell高度
- iOS开发总结-UITableView 自定义cell和动态计算cell的高度
- uitableview cell实现性能优化
- 使用UITableView+FDTemplateLayoutCell计算cell的高度
- UITableView自动计算cell的高度
- UITableView的Cell根据内容计算高度
- UITableView自动计算cell高度并缓存
- UITableView自动计算cell高度并缓存
- 动态计算Cell的高度
- Java虚拟机(一):Java内存区域与内存溢出异常
- Sublime与Evernote的结合
- java 从网络Url中下载文件
- java的Collections中二分查找源码分析
- OBIEE RPD开发-数据库功能
- UITableView性能优化 以及动态计算cell高度 新方法
- C语言学习记录(九):迷你shell和迷你ftpd的实现(附源码)
- Android平台访问https 双向认证(上)
- LightOJ 1361 Component Placement 最小割
- Android开发环境搭建的窍门以及难点解决
- Android listview加载不同布局与adapter用法
- 第四章 局域网
- patest L3-007 天梯地图
- 自己网页调用百度地图API