UIScrollView blocks run loop?(UIScrollView 阻止运行循环?)
问题描述
我在同一个 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 阻止运行循环?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:UIScrollView 阻止运行循环?
基础教程推荐
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01