首页 > 代码库 > iOS 8:【转】UITableView 性能优化笔记
iOS 8:【转】UITableView 性能优化笔记
源地址:http://fann.im/blog/2012/09/11/uitableview-optimization-notes/
Hacking Week 技术总结最后一篇,记一下 UITableView 性能优化需要注意和改进的地方。
- 网络图片异步加载,SDWebImage。
- 文字直接 drawInRect/drawAtPoint 绘制,参考 ABTableViewCell,AdvancedTableViewCells。
- 本地图片也可以直接绘制,或者用 CALayer 来添加显示。
- cell 重用机制。
- cell 内容尽量避免透明效果。
- 如非必要,减少 reloadData 全部 cell,只 reloadRowsAtIndexPaths。
- 如果 cell 是动态行高,计算出高度后缓存。tableView 会在加载的时候把全部 cell 的高度通过
heightForRowAtIndexPath:
都计算出来,即使 cell 还没有展示。 - 如果 cell content 的展示位置也不固定,第一次计算后也要缓存。
- cell 高度固定的话直接用
cell.rowHeight
设置高度,不要再实现tableView:heightForRowAtIndexPath:
delegate. - cell content 的解析操作(尤其是复杂的解析)异步进行+预执行,解析结果要缓存。
- 可以预先加载需要的网络资源(图片等),SDWebImagePrefetcher.
There are performance implications to using
tableView:heightForRowAtIndexPath:
instead of therowHeight
property. Every time a table view is displayed, it callstableView:heightForRowAtIndexPath:
on the delegate for each of its rows, which can result in a significant performance problem with table views having a large number of rows (approximately 1000 or more). via Apple Document
iOS 8:【转】UITableView 性能优化笔记
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。