CFRunLoopMode
RunLoop在同一时段只能且必须在一种特定Mode下Run
更换Mode时, 需要暂停当前的Loop,然后重启新的Loop
NSDefalutRunLoopMode 默认状态.空闲状态
UITrackingRunLoopMode 滑动ScrollView
NSRunLoopCommonModes 默认包括上面第一和第二
实例:添加timer给当前runloop时,如果选择NSDefalutRunLoopMode模式,则滑动界面时,timer停止运行,不滑动时运行;如果选择UITrackingRunLoopMode,则滑动时timer也能运行,不滑动时反而不运行。
如果是选择NSRunLoopCommonModes时,包括前两种情况,都运行。
CFRunLoopObserver
监听runloop,不能使用传统的kvo方式监听runloop。
需要使用CF类添加runloop监听,在btn点击时唤醒runloop,点击完runloop休眠。
网友评论