滚动UITableView将停止Timer

我是一名初学者,我正尝试为iOS编写和应用程序,它将在主屏幕中向用户显示一个从25分钟到0的计时器(由每秒使用NSTimer更新文本的UILabel制成)和一个UITableView(嵌入在主屏幕的UIViewController中)每当定时器达到0时就会显示一个单元格。

所以在我的UIViewController控制的主视图中,我有: - UILabel:用于定时器 - UITableView:每次定时器到达时显示一个单元0 - UIButton:启动定时器

一切似乎工作正常,除了滚动UITableView将停止计时器更新标签,只要用户将手指放在tablewView上。 任何人都可以告诉我为什么标签不会在UITableView滚动时更改文本?

PS我认为这个问题可能与我没有使用线程有关,因为我还没有学会使用它们。 如果我的英语不完美,但我是意大利人,我很抱歉。


我做了一个快速的谷歌搜索,第一个结果是这样的:

在滚动UIScrollView期间停止UILabel更新

似乎完全适合您的需求 - 因为它是完全相同的问题;)


updateTimer = [NSTimer scheduledTimerWithTimeInterval:.01 target:self selector:@selector(updateCurrentTime) userInfo:p repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:updateTimer forMode:NSRunLoopCommonModes];

Swift 3.x中的解决方案:

self.updateTimer = Timer.scheduledTimer(timeInterval:1.0, target: self, selector: "updateFunction", userInfo: nil, repeats: true)
RunLoop.current.add(self.updateTimer, forMode: RunLoopMode.commonModes)
链接地址: http://www.djcxy.com/p/75411.html

上一篇: Scrolling an UITableView will stop Timer

下一篇: UIRefreshControl in Landscape