目的: 解决在滑动的时候加载图片,出现卡顿的现象。
1.利用scorllView的代理方法来优化
UIScrollView的两个代理方法,在这两个方法中调用给imageView赋值的方法,就能避免滑动时加载图片导致UITableView滚动卡顿的问题
//将要停止滚动时
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;
//结束滚动时
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;
// called when scroll view grinds to a halt
2.利用Runloop在UIScrollView滑动时和App默认运行时的Model不同来实现
利用PerformSelector设置当前线程的Runloop的运行模式,
NSDefaultRunLoopMode:App的默认运行模式,通常主线程是在这个运行默认下运行的,
UITrackingRunLoopMode:跟踪用户交互事件(用于 ScrollView 追踪触摸滑动,保证界面滑动时不受其他Mode影响)然后 我们滑动UITableView时候 RunLoop的运行模式就会变为UITrackingRunLoopMode所以我们把给ImageView加载图片的方法用PerformSelector设置当前线程的RunLoop的运行模式kCFRunLoopDefaultMode 这样滑动时候就不会执行加载图片的方法了
[cell performSelector:@selector(setImage:) withObject:nil afterDelay:0.1 inModes:@[NSDefaultRunLoopMode]];