RunloopMode

一个runloop只能在某一个mode中跑,runloop可以在多个mode之间进行切换,默认的,系统提供了两个

mode:NSDefaultRunloopMode和UITrackingRunloopMode。正常情况下是default,但是如果一个

scrollView滑动的时候(UITableView是scrollView的子类)runloop就会切换到

UITrackingRunloopMode,这时候所有往default里面添加的内容都没法跑起来了。这也是为什么,如果使用NSTimer的

schedule方法来调度timer,当一个tableView滚动的时候timer会停止,就是因为schedule将把timer添加进

default,而tableView滚动的时候runloop切换到了UITrackingRunloopMode,此时default中的timer

就跑不起来了。

你可能感兴趣的:(RunloopMode)