Es gibt zwei Arten von Tabellenansichtszellen, die Ihnen über das Storyboard zur Verfügung gestellt werden: dynamische Prototypen und statische Zellen
1. Dynamische Prototypen
Aus dem Namen wird dieser Zelltyp dynamisch generiert. Sie werden über Ihren Code gesteuert, nicht über das Storyboard. Mithilfe des Delegaten und der Datenquelle der Tabellenansicht können Sie die Anzahl der Zellen, die Höhe der Zellen und den Prototyp der Zellen programmgesteuert angeben.
Wenn Sie eine Zelle in Ihre Tabellenansicht ziehen, deklarieren Sie einen Prototyp von Zellen. Sie können dann eine beliebige Anzahl von Zellen erstellen, die auf diesem Prototyp basieren, und diese cellForRow
programmgesteuert über die Methode zur Tabellenansicht hinzufügen . Dies hat den Vorteil, dass Sie nur einen Prototyp definieren müssen, anstatt jede einzelne Zelle mit allen Ansichten zu erstellen, die Sie selbst hinzugefügt haben (siehe statische Zelle).
In diesem Fall können Sie keine UI-Elemente auf dem Zellenprototyp mit Ihrem View Controller verbinden. Sie haben nur ein View Controller-Objekt initiiert, aber möglicherweise haben Sie viele Zellenobjekte initiiert und zu Ihrer Tabellenansicht hinzugefügt. Es ist nicht sinnvoll, den Zellenprototyp mit dem View Controller zu verbinden, da Sie nicht mehrere Zellen mit einer View Controller-Verbindung steuern können. Und Sie werden eine Fehlermeldung erhalten, wenn Sie dies tun.
Um dieses Problem zu beheben, müssen Sie Ihr Prototypetikett mit einem UITableViewCell
Objekt verbinden. A UITableViewCell
ist auch ein Prototyp von Zellen, und Sie können so viele Zellenobjekte initiieren, wie Sie möchten. Jedes von ihnen wird dann mit einer Ansicht verbunden, die aus Ihrem Storyboard-Tabellenzellenprototyp generiert wird.
Schließlich in Ihrer cellForRow
Methode erstellen aus der die benutzerdefinierten Zelle UITableViewCell
Klasse und macht lustige Sachen mit dem Etikett
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "yourCellIdentifier") as! YourCell
cell.label.text = "it works!"
return cell
}
2. Statische Zellen
Andererseits werden statische Zellen tatsächlich über das Storyboard konfiguriert. Sie müssen UI-Elemente in jede einzelne Zelle ziehen, um sie zu erstellen. Sie steuern die Zellennummern, -höhen usw. über das Storyboard. In diesem Fall wird eine Tabellenansicht angezeigt, die auf Ihrem Telefon genau dieselbe ist wie auf dem Storyboard. Statische Zellen werden häufiger zum Einstellen von Seiten verwendet, wobei sich die Zellen nicht stark ändern.
Um UI-Elemente für eine statische Zelle zu steuern, müssen Sie sie tatsächlich direkt mit Ihrem View Controller verbinden und einrichten.