我的问题解释非常复杂,所以我会尽我所能解释它。如何在滚动时更新定时器上的UITableView
我正在用TableView做一个快速的应用程序。在这个TableView中,我有一些数据存储在本地(Dictionnary,Arrays,var,...)。 因此,在我的TableView中,我每0.01秒刷新一次数据。然后,当我滚动我的TableView时,此刷新停止,我不想要它。我想要“继续刷新”。
有人可以解释我能做到吗?我在StackOverflow上搜索,最多的答案是:线程。 我理解C语言中的Thread,但在Swift中对我来说很模糊。 如果你有一个在Swift中进行多线程的练习,你可以发布它!
谢谢你的时间。
P.S:我可以发表一些代码,但我不认为这是真的有必要为我的问题。
编辑:
有定时器的代码,并更新
override func viewDidLoad() {
timer = Timer.scheduledTimer(timeInterval: 0.01, target: self,
selector:#selector(ViewController.updateTimer), userInfo: nil,
repeats: true)
}
func updateTimer() {
var j = 0
for _ in rows {
if (rows[j]["Activ"] as! Bool == true) {
rows[j]["timer"] = (rows[j]["timer"] as! Double + 0.01) as AnyObject
}
j += 1
}
myTableView.reloadData()
}
显示执行定时器并调用刷新的代码。问题是表更新和滚动都需要在主线程中完成。即使你有另一个线程,它也不会有帮助。 –
@LouFranco谢谢你的回答。我用代码编辑我的问题! – pierreafranck
每'0.01秒'更新你的UI是没有意义的,因为屏幕甚至无法更新。您的更新频率不应超过1/30秒(30FPS)。 –