UITableView优化
2020-12-29 本文已影响0人
一个栗
主要包括以下2个方面:
1.减少cellForRowAtIndexPath计算(cell内容计算)
2.减少heightForRowAtIndexPath(cell高度计算)
减少cellForRowAtIndexPath计算
- 提前计算每个cell中需要的一些基本数据,代理调用的时候直接取出。
- 图片要异步加载,加载完成后再根据cell内部UIImageView的引用设置图片。
- 图片数量多时,图片的尺寸要根据需要提前经过transform矩阵变换压缩好(直接设置图片的contentMode让其自行压缩仍然会影响滚动效率),必要的时候要准备好预览图和高清图,需要时再加载高清图。
- 图片的“懒加载“法,延迟加载,当滚动速度很快时避免频繁请求服务器。
减少heightForRowAtIndexPath
- 若cell高度确定,则去掉heightForRowAtIndexPath代理方法,直接设置tableView的rowHeight属性为固定的高度。
- 如果高度不固定,则将高度缓存,异步请求服务器数据时,提前将cell的高度计算好并作为datasource的一个数据保存起来。
常见问题:UITableView中cell的复用是由几个数组实现的?
答案:2个
一个是visiableCells数组,保存当前屏幕可见的cell;另一个是reusableTableCells数组用来保存那些可复用的cell。