---- ANTWORTEN ----Sortierung TableView Zeilen
Ich versuche gerade meine Tabellenansicht nach den Wörtern auf ihren Etiketten zu sortieren, die sie haben. Jede Zeile hat mindestens eine der 9 Farben, die ein Benutzer auswählen kann (der Benutzer kann beliebig viele auswählen). Ich habe eine bestimmte Reihenfolge, wie ich die Tabelle organisieren möchte, aber je nachdem, welche Zeile der Benutzer zuerst wählt, kann die Reihenfolge der Zeilen alles sein (das Problem).
Was ich dachte war, dass ich ein Array in der Reihenfolge mache, in der die Wörter im zweiten Bildschirm angezeigt werden sollen: "rot, blau, grün, ...." dann verbinde dieses Array irgendwie mit der Tabellenansicht. Wenn also die Tabellenansicht dieser Reihenfolge folgt (rot, blau, grün, ....) und der Benutzer blau auswählt, wird der Tisch als "rot, grün, ..." bestellt. Das bedeutet, dass unabhängig davon, welche Farben der Benutzer hat oder nicht, die Tabellenansicht der Reihenfolge des Arrays folgt. Ich habe tagelang versucht, eine Lösung für dieses Problem zu googeln und kann es nicht herausfinden. Irgendwelche Vorschläge? Ich habe meinen Code eingefügt, wie die Farben laden:
func loadColors() {
let colorQuery = PFQuery(className: "Colors")
colorQuery.whereKey("userID", equalTo: PFUser.current()?.objectId! ?? String()) //getting which user
colorQuery.limit = 10
colorQuery.findObjectsInBackground { (objects, error) in
if error == nil {
self.colorTypeArray.removeAll(keepingCapacity: false)
self.colorNameArray.removeAll(keepingCapacity: false)
self.colorObjectIDArray.removeAll(keepingCapacity: false)
for object in objects! {
self.colorTypeArray.append(object.value(forKey: "colorType") as! String) // add data to arrays
self.colorNameArray.append(object.value(forKey: "colorName") as! String) // add data to arrays
self.colorObjectIDArray.append(object.objectId!) //appends the objectid
}
self.tableView.reloadData()
} else {
print(error?.localizedDescription ?? String())
}
}
}
//places colors in rows
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! ColorsCell //connects to color cell
cell.colorType.text = colorTypeArray[indexPath.row] //goes through array and puts colors on cell label
return cell
}
Ich habe in meinem Code direkt nach dem ich die Daten und verwenden print (sortedColors) sammeln, zeigt das Array leer aus – fphelp
Ist Ihr Code auf Fehler oder mir? Hat 'patternColors' die richtigen Werte für Ihren Fall? – paulvs
Ah, es tut mir so leid, es war mein Code, der das Problem hatte! Vielen Dank! – fphelp