一群程序猿的秘密基地

tableView 滑动卡的问题

2016-06-22  本文已影响302人  win_coder

从缓存中或者是从本地读取图片给UIImage的时候耗费的时间。需要把下面的两句话放到子线程里面:

NSData *imgData=[NSData dataWithContentsOfURL:[NSURL URLWithString:app.icon]]; //得到图像数据

UIImage *image = [UIImage imageWithData:imgData];

把UIImage赋值给图片的时候在主线程。

子线程不能更新UI, 所有的UI更新都是主线程执行了.手指滑动屏幕了,或者屏幕的某个方法执行了。

如何优化tabelView的滑动速度:

1:复用单元格;

2:使用不透明的视图,单元格尽量少使用动画;

3:图片加载使用异步加载,设置图片加载的并发数;

4:滑动时不加载图片,停止时加载;

5:文字,图片可以直接drawInRect绘制;图片需要圆角的情况下,直接使用带圆角的图片节省性能;

6:如非必要,尽量reloadData全部cell,可以针对性的reloadRowsAtIndexPaths;

7:如果cell是动态行高,计算高度后缓存;

8:cell高度固定的话直接使用cell.rowHeight设置高度;

上一篇下一篇

猜你喜欢

热点阅读