美文网首页
RunLoop学习小记

RunLoop学习小记

作者: 祺了个祺 | 来源:发表于2018-01-15 16:48 被阅读2次

RunLoop学习小记

先描述一个场景,scrollView上有一个定时器,但是每当我们滑动scrollView时,定时器就不走了,这可能使得倒计时的时间不准,原因是什么呢?怎么解决呢?这就用到了RunLoop的知识了。

当我们创建一个定时器,并且加入到RunLoop中,我们会有如下代码:

NSTimer *timer = [NSTimer timerWithTimeInterval:1.0 repeats:YES block:^(NSTimer * _Nonnull timer) {

            NSLog(@"创建一个定时器");

        }];

[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];

这样,我们就创建了一个定时器,并且每一秒打印一下。但是,如果这个我们此时拖动在同一个界面的scrollView时,我们会发现,在我们拖动的时候定时器不动了,不拖动的时候,定时器又恢复了正常,问题在哪呢?

原来是NSDefaultRunLoopMode这个参数!

于是我们换成了UITrackingRunLoopMode,我们却惊喜的发现,当我们滑动的时候打印,不滑动的时候却不打印了。

NSDefaultRunLoopMode(默认模式)

UITrackingRunLoopMode (UI模式)

当我们把这两种mode都加上,结果正如我们所料,打印正常了。

有没有一个mode就能完成这两种模式的效果呢?

答案是有的!

当mode为NSRunLoopCommonModes时,就完成了刚才的操作。相当于两种mode都添加上了,滑动scrollView就不会影响倒计时了。

相关文章

  • RunLoop学习小记

    RunLoop学习小记 先描述一个场景,scrollView上有一个定时器,但是每当我们滑动scrollView时...

  • Runloop 小记

    一直在断断续续的看Runloop的一些使用,在项目中有偶尔有使用,这次再来复习,就简单的记录一些笔记,纯属个人笔记...

  • IOS runloop 学习笔记

    这次学习 的内容是 runloop 1.runloop 是什么2.runloop 的作用3.runloop 和 线...

  • RunLoop学习资料

    非常好的runloop学习系列 CoreFoundation源码 RunLoop系列之源码分析 关于Runloop...

  • NSRunLoop

    前言 RunLoop的初期学习总结,后续会持续研究更新。 一、Runloop定义及作用 1. 什么是Runloop...

  • RunLoop学习总结

    通过以下文章学习记录 关于Runloop的原理探究及基本使用 深入理解RunLoop RunLoop完全指南 Ru...

  • RunLoop-基础概念(初识篇)

    学习这篇内容主要讲解RunLoop的概念,以及RunLoop和线程之间的关系。当然提及RunLoop也离不开Aut...

  • Runloop学习

    Runloop学习 | 目录 ||: ------------- || 1 什么是...

  • RunLoop学习

    RunLoop概念 人如其名,RunLoooooooooooooooop,像是一个死循环,不停的跑圈,永不懈怠。除...

  • Runloop学习

    深入理解RunLoop | Garan no dou

网友评论

      本文标题:RunLoop学习小记

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