UIScrollView阻止运行循环? [英] UIScrollView blocks run loop?

查看:124
本文介绍了UIScrollView阻止运行循环?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在同一个viewController上实现了NSTimer(重复)和UITableView。

I implemented a NSTimer(repeats) and UITableView on the same viewController.

不知何故,当我滚动浏览tableView时,运行循环似乎停止触发NSTimer。
UITextView也是如此,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?

推荐答案

计时器停止触发的原因是在滚动期间运行循环切换到 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阻止运行循环?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆