Mein Problem ist sehr kompliziert zu erklären, also werde ich mein Bestes tun, um es zu erklären.Wie aktualisiere ich eine UITableView auf einen Timer beim Scrollen
Ich mache eine schnelle Anwendung mit TableView. In dieser TableView habe ich einige Daten, die in lokalen (Dictionnary, Arrays, var, ...) gespeichert sind. Also, in meinem TableView aktualisiere ich diese Daten alle 0,01 Sekunden. Wenn ich dann in meinem TableView blättere, wird diese Aktualisierung gestoppt und ich möchte sie nicht. Ich möchte eine "Aktualisierung fortsetzen".
Jemand kann erklären, wie ich es tun kann? Ich suche auf StackOverflow und die beste Antwort ist: der Thread. Ich habe Thread in C verstanden, aber es ist sehr vage für mich in Swift. Wenn Sie eine Übung für Zug Multithreading in Swift haben, können Sie es posten!
Danke für Ihre Zeit.
P.S: Ich kann etwas Code posten, aber ich denke nicht, dass es wirklich notwendig für meine Frage ist.
EDIT:
Es ist der Code für den Timer und aktualisieren
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()
}
Zeigen Sie den Code an, der den Timer ausführt und die Aktualisierung aufruft. Das Problem besteht darin, dass das Tabellenupdate und der Scroll im Hauptthread durchgeführt werden müssen. Selbst wenn du einen anderen Thread hättest, würde das nicht helfen. –
@LouFranco Danke für Ihre Antwort. Ich habe meine Frage mit Code bearbeiten! – pierreafranck
Aktualisieren Sie Ihre Benutzeroberfläche alle 0,01 Sekunden macht keinen Sinn, da der Bildschirm nicht so schnell aktualisiert werden kann. Ihre Aktualisierungshäufigkeit sollte nicht mehr als 1/30 s (30 FPS) betragen. –