Laden Sie mehrere Prototypzellen in UITableView
Ich habe derzeit eine UITableView, die 2 Zeilen einer benutzerdefinierten Zelle enthält. Vor kurzem habe ich meinem Storyboard eine zweite Prototypzelle hinzugefügt und versucht, sie ohne Erfolg zu meinem UITableView hinzuzufügen. Meine cellForRowAtIndexPAth-Methode lautet wie folgt:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: FlightsDetailCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as FlightsDetailCell
cell.userInteractionEnabled = false
if indexPath.section == 0 {
cell.graphView.enableBezierCurve = true
cell.graphView.enableReferenceYAxisLines = true
cell.graphView.enableYAxisLabel = true
cell.graphView.colorYaxisLabel = UIColor.whiteColor()
cell.graphView.delegate = UIApplication.sharedApplication().delegate as BEMSimpleLineGraphDelegate
cell.graphView.dataSource = UIApplication.sharedApplication().delegate as BEMSimpleLineGraphDataSource
return cell
}
if indexPath.section == 1 {
cell.graphView.enableBezierCurve = true
cell.graphView.enableReferenceYAxisLines = true
cell.graphView.enableYAxisLabel = true
cell.graphView.colorYaxisLabel = UIColor.whiteColor()
cell.graphView.delegate = self
cell.graphView.dataSource = self
return cell
}
if indexPath.section == 2 {
let cell2: FlightsInformationCell = tableView.dequeueReusableCellWithIdentifier("Cell2", forIndexPath: indexPath) as FlightsInformationCell
cell2.userInteractionEnabled = false
return cell2
}
return cell
}
Section 0 und Section 1 laden die Prototypzelle korrekt mit der ID "Cell", aber wenn ich zu Section 2 gehe, erhalte ich eine weitere Instanz der ersten Prototypzelle abzüglich aller Daten, da ihr kein Delegat oder keine Datenquelle zugewiesen wurde. Ansonsten sind die Zellen identisch mit den IDs von "Cell" bzw. "Cell2" eingerichtet, aber ich kann anscheinend nicht auf "Cell2" zugreifen.
Zusätzliche Erläuterung: Ich habe 2 Prototypzellen in meinem Storyboard. Beide sind gleich eingerichtet, da ihre Bezeichner in denselben Feldern angegeben sind, von ihren eigenen Klassen erben und in UITableView als gleich deklariert wurden. Was die Delegaten und Datenquellen betrifft, enthält meine ursprüngliche Prototypzelle ein Diagramm (verwendet BEMSimpleLineGraph). Jede Instanz dieser Zelle verfügt über einen eigenen Delegaten und eine eigene Datenquelle und wird im obigen Code für die Aktionen 0 und 1 angezeigt.
Die erste Zelle, die unten abgebildet ist (grau), ist die ursprüngliche Zelle, die ein Diagramm enthält, und Zelle2 ist direkt darunter in Weiß.