【问题标题】:UIScrollView blocks run loop?UIScrollView 阻止运行循环?
【发布时间】:2011-11-24 23:16:44
【问题描述】:

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

不知何故,当我滚动浏览 tableView 时,运行循环似乎停止触发 NSTimer。 UITextView 也是如此,它也是 UIScrollView 的子类。

我可以知道这里发生了什么吗?

【问题讨论】:

    标签: iphone ios uiscrollview


    【解决方案1】:

    定时器停止触发的原因是运行循环在滚动期间切换到UITrackingRunLoopMode,并且默认情况下没有将定时器添加到该模式。您可以在启动计时器时手动执行此操作:

    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];
    

    【讨论】:

      猜你喜欢
      • 2011-06-27
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      • 2022-01-24
      • 2020-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多