美文网首页
Runloop简单介绍

Runloop简单介绍

作者: 小雨hahaha | 来源:发表于2017-02-13 18:18 被阅读113次

一、Runloop作用:

1、保证程序不退出,是个死循环
2、负责监听事件:触摸(UI界面的交互(优先级是最高的)),时钟,网络 runloop优先处理UI事件
3、负责渲染屏幕上的所有UI(一次runloop循环需要渲染屏幕上所有UI变化的点)

二、Runloop有两种模式,做UI是一种,timer的是另一种

[[NSRunLoop currentRunLoop] addTimer:timer forMode:<#(nonnull NSRunLoopMode)#>]

这个方法里NSRunLoopMode就是要选择Runloop的模式,这两种模式默认处理如下事件:
1、DefaultRunLoopMode 时钟,网络事件
2、RunLoopCommonModes 用户交互模式:UI处理,这个模式里不能做耗时操作,UI会卡顿),可以把timer放在UI的这个模式下面,但是timer方法里面不能放耗时操作

三、Runloop应用

tableview的性能优化的一个点:cell上的内容加载优化

加载图片我们都是使用的SD,网络加载因为是比较耗时的操作,所以我们把它丢在子线程中加载,更新UI放在主线程中,但如果更新UI也是一个耗时操作怎么办?比如cell上加载高清图片,我们会发现在滚动tableview的时候UI会卡顿,这是为什么呢?前面也说过,一次runloop循环需要渲染屏幕上所有UI变化的点,因为图片很大,一次又加载很多图,多以这次Runloop循环有点久,造成了卡顿,解决方法思路:一次runloop加载一张图,使用block。开辟一个数组,用来装加载图片的代码,注意是把代码放进去哦,在返回cell的数据源方法中,把加载图片的代码放到数组里,使用block把加载图片的代码带进去,监听每次runloop(CFRunLoop CFRunLoopObserberRef是对runloop做监听的),一次循环就从数组中拿出代码执行,并且定义数组最多放多少张图片(比如一个页面的)

相关文章

  • Runloop简单介绍

    一、Runloop作用: 1、保证程序不退出,是个死循环2、负责监听事件:触摸(UI界面的交互(优先级是最高的))...

  • RunLoop应用

    在我的另一篇文章RunLoop简单介绍了关于runLoop基础知识和NSTimer时runloop简单应用, 下面...

  • RunLoop的简单介绍

    什么是RunLoop 从字面意思来看:跑圈、运动循环 基本用法:保持程序持续运行、处理App中的各种事件(触摸事件...

  • RunLoop

    RunLoop简单概述 RunLoop相关类 RunLoop逻辑处理 RunLoop实践 RunLoop简单概述 ...

  • iOS面试-Runloop简单介绍

    一. Runloop基本作用 1)保持程序的持续运行处理APP中各种事件(比如触摸事件,定时器事件,selecto...

  • OC-RunLoop简单介绍

    概念 运行循环每个线程都有一个RunLoop对象,但是只有主线程的RunLoop是开启的。子线程中的RunLoop...

  • iOS开发-RunLoop的介绍

    RunLoop简单介绍 RunLoop(运行循环)的作用保持程序的持续运行(ios程序为什么能一直活着不会死)处理...

  • OC底层知识(十) : RunLoop

    一、Runloop的简单介绍 Runloop 是在程序运行过程中循环做一些事情。比如应用在:定时器(NSTime...

  • iOS-RunLoop

    现在对iOS开发者要求越来越高,RunLoop其实在开发中很少会用到但是也需要我们去了解。 RunLoop简单介绍...

  • RunLoop的介绍

    本文介绍的RunLoop包含以下几个点: 一、什么是RunLoop二、RunLoop对象三、 RunLoop相关的...

网友评论

      本文标题:Runloop简单介绍

      本文链接:https://www.haomeiwen.com/subject/ybdtwttx.html