计时器要和runloop相关联,runloop会触发任务。创建NSTimer时,可以将其“预先安排”在当前的runloop中,也可以创建好,然后再由开发人员自己调度。无论采用什么方式,只要把计时器放在循环里,它才能创建好触发的任务...
目的作用:1.保证启动的程序不退出;2.负责监听事件,触摸、时钟、网络事件;3.Runloop做完一件事,它就会sleep;4.Runloop负责在一次循环中渲染UI。
解决方法:1.通过修改timer默认mode, NSRunLoopCommonModes(滑动时主线程会从NSDefaultRunLoopMode切换为UITrackingRunLoopMode,导致timer停止运行)
如下图,红框为一个UIVIew,CAGradientLayer的startPoint和endPoint的取值是(0,0)到(1,1)。
RunLoop为了实现程序不退出,在没有事件处理时休眠,在有事件到来时立刻被唤醒。
水平连续滚动字幕: 这种一看就是一组view放在scrollview实现的滚动,但是如何实现循环滚动呢,思路如下 1:加入滚动字幕有五组文本,滚动到最后一组时,后面应该紧跟着第一组文本,如此才能实现连续滚动 2:我们可以把传入的文本...
它会持有target的引用计数,不出意外的话你的target还会持有它的引用计数。另外,还会被runloop持有它的引用计数。
线程刚创建的时候没有Ru nLoop对象,RunLoop会在第一次获取它的时候创建
因为创建的 NSTimer 默认是被加入到了 defaultMode,所以当 Runloop 的 Mode 变化时,当前的 NSTimer 就不会工作了。
RunLoop是通过内部维护的事件循环(Event Loop)来对事件/消息进行管理的一个对象。