我有一个UITableView,工作正常,更新很好。我还有一个更新每个UITableView标签和进度视图的计时器,当用户滚动表视图时,它会停止更新/刷新UITableView中的内容(标签和进度视图),直到它们完成滚动。
除了没有更新的内容,我发现当用户滚动时整个应用程序挂起。我有两个计时器,我在两者中都放了print语句,但是在用户滚动时都没有打印。我无法找到一个迅速或迅速的解决方案。
答案 0 :(得分:7)
这与Swift完全无关。
您可能使用默认方法安排了NSTimer
,这导致以滚动时未触发的方式将其添加到runloop。您需要使用NSRunLoopCommonModes
模式将其添加到主runloop。
E.g。
let timer = NSTimer(timeInterval: 1.0, target: self, selector: #selector(update), userInfo: nil, repeats: false)
NSRunloop.mainRunLoop().addTimer(timer, forMode: NSRunloopCommonModes)