Ich verwende eine nicht klickbare Tabelle, um verschiedene Informationen eines Objekts anzuzeigen. Für diese Informationen habe ich verschiedene benutzerdefinierte Zelltypen eine, wo ich eine Karte platziert, wenn mein Objekt Standorte, eine Liste mit Links und eine andere eine mehrzeilige Beschriftung für eine kleine Beschreibung haben ... zum Beispiel.Variable Verwendung von mehreren benutzerdefinierten Zellen
ich diese Unter Zellen mit:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if indexPath.row == 0 {
let cell: mapCell = tableView.dequeueReusableCellWithIdentifier("mapCell") as! MapCell
return cell
} else if indexPath.row == 1 {
let cell: textCell = tableView.dequeueReusableCellWithIdentifier("textCell") as! TextCell
return cell
} else if indexPath.row == 2 {
let cell: listCell = tableView.dequeueReusableCellWithIdentifier("listCell") as! ListCell
return cell
}
}
So weit, so gut, alles gut funktioniert. Mein Problem ist, dass nicht jedes Objekt eine Karte benötigt, einige brauchen nur etwas Text und eine Liste, andere Objekte brauchen eine Karte und eine Liste, alle anderen. Ich möchte, dass meine TableView einige Zellen überspringt, wenn eine Bedingung vorliegt.
Ich weiß, ich kann ein symbolisches Array für die Änderung der Anzahl der Zellen meiner TableView machen, aber das Löschen nur vom Ende meiner TableView, nicht bestimmte Zellen.
Eine meiner Ideen ist es, eine leere Zelle zu erzeugen, vielleicht mit einer Höhe von 0 oder 1, so dass ich etwas tun kann:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if indexPath.row == 0 {
if mapCellNeeded {
let cell: mapCell = tableView.dequeueReusableCellWithIdentifier("mapCell") as! mapCell
} else {
let cell: emptyCell = tableView.dequeueReusableCellWithIdentifier("emptyCell") as! EmptyCell
}
return cell
} else if indexPath.row == 1 {
...
}...
}
put Ich weiß nicht, ob es nicht ist ein effizienter Weg. Ich hoffe, ihr könnt mir helfen.
Erstellen Sie ein Array von Objekten, wo Sie Zellen Informationen, die Sie benötigen, halten, dann machen Sie nicht leere Zellen nur so viele Zellen wie Sie in diesem Array haben. wenn du versuchst, leere Zelle zu machen, bedeutet das, dass du sie überhaupt nicht brauchst. –