为什么 UIScrollView 的滚动会导致 NSTimer 失效?


问题如题目所示,为什么 UIScrollView 的滚动会导致 NSTimer 失效?

ios

打酱油的飞过 9 years, 11 months ago

就是runloop mode的问题,具体的可以看看这个讲解,题主的问题是一个典型问题。

http://v.youku.com/v_show/id_XODgxODkzODI0.html

狐狸Fse answered 10 years ago

应该是因为UIScrollView滚动的时候跟主线程不是同一个runloop mode,一个runloop mode就是input sources、timer和observers的集合。每次执行runloop,都需要指定一个mode。UIScrollView滚动时候由于不同的mode所以也导致它只能保证它所在的runloop的timer有效,而主线程无效。

秋葉留未穗 answered 10 years ago

就是runloop mode的问题,具体的可以看看这个讲解,题主的问题是一个典型问题。

http://v.youku.com/v_show/id_XODgxODkzODI0.html

逃避、现实 answered 9 years, 11 months ago

应该是因为UIScrollView滚动的时候跟主线程不是同一个runloop mode,一个runloop mode就是input sources、timer和observers的集合。每次执行runloop,都需要指定一个mode。UIScrollView滚动时候由于不同的mode所以也导致它只能保证它所在的runloop的timer有效,而主线程无效。

忽方十四悠 answered 9 years, 11 months ago

Your Answer