1、异步加载图片:
在
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
方法中这样判断:
if (tableView.dragging == NO && tableView.decelerating == NO) {
//异步加载图片
}
并且在
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
和
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
方法中进行异步加载图片
2、缓存cell高度,实现cell高度计算与cell的内容展示的分离
具体实现就是在cell的数据模型中计算cell所需高度,为数据模型增加一个高度的属性,计算完成后赋值,然后在
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
中取出cell相应模型中的高度,赋值,而在
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
中只负责cell内容的展示,不再负责计算。
参考链接:
3、当每一行的cell高度一致的时候使用属性设置cell的高度
// 当每一行的cell高度一致的时候使用属性设置cell的高度
self.tableView.rowHeight = 160;
4、减少不透明视图的使用
不透明的视图可以极大地提高渲染的速度。因此如非必要,可以将table cell及其子视图的opaque属性设为YES(默认值)。
其中的特例包括背景色,它的alpha值应该为1(例如不要使用clearColor);图像的alpha值也应该为1,或者在画图时设为不透明。
5、绘制
参考:预渲染加速图像的显示