我在同一个 viewController 上实现了 NSTimer(repeats) 和 UITableView.
I implemented a NSTimer(repeats) and UITableView on the same viewController.
不知何故,当我滚动 tableView 时,运行循环似乎停止触发 NSTimer.UITextView 也是如此,它也是 UIScrollView 的子类.
Somehow, when I scroll through the tableView, the run loop seems to stop firing the NSTimer. The same goes for UITextView, which is also a subclass of UIScrollView.
我可以知道这里发生了什么吗?
May I know what is happening here?
定时器停止触发的原因是滚动时run loop切换到UITrackingRunLoopMode,默认没有添加定时器那种模式.您可以在启动计时器时手动执行此操作:
The reason that the timer stops firing is that the run loop switches to UITrackingRunLoopMode during scrolling and the timer is not added by default to that mode. You can do that manually when you start the timer:
NSTimer *timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(timerFired:) userInfo:nil repeats:YES];
NSRunLoop *runloop = [NSRunLoop currentRunLoop];
[runloop addTimer:timer forMode:NSRunLoopCommonModes];
[runloop addTimer:timer forMode:UITrackingRunLoopMode];
这篇关于UIScrollView 阻止运行循环?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
UIScrollView 底部的 UIButtons 不起作用UIButtons at the bottom of UIScrollView not working(UIScrollView 底部的 UIButtons 不起作用)
scrollViewWillEndDragging:withVelocity:targetContentOffset: 不scrollViewWillEndDragging:withVelocity:targetContentOffset: not working on the edges of a UISCrollView(scrollViewWillEndDragging:withVelocity:targetCon
向下滚动时 ImageView 缩放ImageView Scaling when scrolling down(向下滚动时 ImageView 缩放)
UIScrollView 上的边界自动更改,带有内容插图Bounds automatically changes on UIScrollView with content insets(UIScrollView 上的边界自动更改,带有内容插图)
用于 UIScrollView 的 iOS5 UITapRecognizer 干扰按钮.怎么iOS5 UITapRecognizer for UIScrollView interfering with buttons. How to fix?(用于 UIScrollView 的 iOS5 UITapRecognizer 干扰按钮.怎么修?)
使用(自定义、交互式)视图控制器呈现和解除处理Handling scroll views with (custom, interactive) view controller presentation and dismissal(使用(自定义、交互式)视图控制器呈现和解除处