TableView 加载图片优化(滑动不加载图片思路)

目的: 解决在滑动的时候加载图片,出现卡顿的现象。
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]];

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • runtime 和 runloop 作为一个程序员进阶是必须的,也是非常重要的, 在面试过程中是经常会被问到的, ...
    SOI阅读 21,900评论 3 63
  • ======================= 前言 RunLoop 是 iOS 和 OSX 开发中非常基础的一个...
    i憬铭阅读 922评论 0 4
  • 这篇文章是我和我们团队最近对 UITableViewCell 利用 AutoLayout 自动高度计算和 UITa...
    kuangkai阅读 1,690评论 0 6
  • RunLoop 文章目录 RunLoop简介 1.1 什么是RunLoop? 1.2 RunLoop和线程 1.3...
    May_d8f1阅读 305评论 0 1
  • 文章目录 RunLoop简介 1.1 什么是RunLoop? 1.2 RunLoop和线程 1.3 默认情况下主线...
    咖啡绿茶1991阅读 301评论 0 0