码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发——实战项目总结&UITableView性能优化技巧

时间:2015-11-17 16:34:07      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:

UITableView性能优化技巧

 

Table view需要有很好的滚动性能,不然用户会在滚动过程中发现动画的瑕疵。

为了保证table view平滑滚动,确保你采取了以下的措施:

  • 正确使用`reuseIdentifier`来重用cells
  • 尽量使所有的view opaque,包括cell自身
  • 避免渐变,图片缩放,后台选人
  • 缓存行高
  • 如果cell内现实的内容来自web,使用异步加载,缓存请求结果
  • 使用`shadowPath`来画阴影
  • 减少subviews的数量
  • 尽量不适用`cellForRowAtIndexPath:`,如果你需要用到它,只用一次然后缓存结果
  • 使用正确的数据结构来存储数据
  • 使用`rowHeight`, `sectionFooterHeight` 和 `sectionHeaderHeight`来设定固定的高,不要请求delegate

 

  • 1.最常用的就是cell的重用, 注册重用标识符

如果不重用cell时,每当一个cell显示到屏幕上时,就会重新创建一个新的cell

如果有很多数据的时候,就会堆积很多cell。如果重用cell,为cell创建一个ID

每当需要显示cell 的时候,都会先去缓冲池中寻找可循环利用的cell,如果没有再重新创建cell

2.避免cell的重新布局

cell的布局填充等操作 比较耗时,一般创建时就布局好

如可以将cell单独放到一个自定义类,初始化时就布局好

3.提前计算并缓存cell的属性及内容

当我们创建cell的数据源方法时,编译器并不是先创建cell 再定cell的高度

而是先根据内容一次确定每一个cell的高度,高度确定后,再创建要显示的cell,滚动时,每当cell进入凭虚都会计算高度,提前估算高度告诉编译器,编译器知道高度后,紧接着就会创建cell,这时再调用高度的具体计算方法,这样可以方式浪费时间去计算显示以外的cell

4.减少cell中控件的数量

尽量使cell得布局大致相同,不同风格的cell可以使用不用的重用标识符,初始化时添加控件,

不适用的可以先隐藏

5.不要使用ClearColor,无背景色,透明度也不要设置为0

渲染耗时比较长

6.使用局部更新

如果只是更新某组的话,使用reloadSection进行局部更新

7.加载网络数据,下载图片,使用异步加载,并缓存

8.少使用addView 给cell动态添加view

9.按需加载cell,cell滚动很快时,只加载范围内的cell

10.不要实现无用的代理方法,tableView只遵守两个协议

 

版权声明:欢迎转载,请贴上源地址: http://www.cnblogs.com/iCocos/(iOS梦工厂)

 

更多精彩请关注github:https://github.com/al1020119?tab=repositories

iOS开发——实战项目总结&UITableView性能优化技巧

标签:

原文地址:http://www.cnblogs.com/iCocos/p/4971897.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!