ios - UITableView 在 ScrollView 时停止更新内容?

标签 ios uitableview nstimer

我有一个 UITableView,它可以正常工作并且可以正常更新。我还有一个计时器,用于更新每个 UITableView 标签和进度 View ,当用户滚动表格 View 时,它会停止更新/刷新 UITableView 中的内容(标签和进度 View ),直到它们完成滚动。

除了内容未更新外,我发现当用户滚动时整个应用程序会挂起。我有两个计时器,我在两个计时器中都放置了 print 语句,但是当用户滚动时都不打印。我一直没能找到 swift 或 swift 2 的解决方案。

最佳答案

这与 Swift 完全无关。

您可能使用默认方法安排了 NSTimer,这导致以滚动时不触发的方式将其添加到运行循环中。您需要使用 NSRunLoopCommonModes 模式将其添加到主运行循环中。

例如

let timer = NSTimer(timeInterval: 1.0, target: self, selector: #selector(update), userInfo: nil, repeats: false)
NSRunloop.mainRunLoop().addTimer(timer, forMode: NSRunloopCommonModes)

关于ios - UITableView 在 ScrollView 时停止更新内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37500662/

相关文章:

ios - 在不更改UIButton外观的情况下禁用UIButton交互(即,外观为灰色)

ios - OpenGL ES 2.0 中的半透明

iOS7上分组UITableView的标题 View 高度

ios - 如何在 UISplitView 的详细 View 中清除 UIWebView 的内容

ios - 用毫秒创建一个倒计时计时器(NSTimer),但它没有正确倒计时

IOS7 - SLComposeViewController - 包括链接/图像?

ios - 无法从 mainBundle 播放 MP4 视频文件

ios - 尝试设置类标签属性时获取 Nil | UI表格 View

ios - 如果他们过去调用并且会延迟显示数据,如何在 iOS 中退出循环的 NSTimer?

swift - Swift 中的@selector()?