目的: 解決在滑動的時候加載圖片,出現卡頓的現象。
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]];