我的問題解釋非常複雜,所以我會盡我所能解釋它。如何在滾動時更新定時器上的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)。 –