ImageView 优化

UITableView 在滚动的时候一个优化点之一就是 UIImageView 的显示,通常需要根据网络去下载图片。所以如果用户快速滚动列表的时候,如果立马下载并显示图片的话,势必会对 UI 的刷新产生影响,直观的表现就是会卡顿,FPS 达不到 60

利用 RunLoop 可以实现这个效果,就是给下载并显示图片的方法指定 NSRunLoopMode

1
2
3
4
5
6
7
8
- (void)clickLoadIMage:(UIButton *)sender {
//[self.imageview performSelector:@selector(setImage:) withObject:[UIImage imageNamed:@"test"] afterDelay:2];
[self performSelector:@selector(downloadAndShowImage) withObject:nil afterDelay:2 inModes:@[NSDefaultRunLoopMode, UITrackingRunLoopMode]];
}

- (void)downloadAndShowImage {
self.imageview.image = [UIImage imageNamed:@"test"];
}