Ich war überrascht herauszufinden, wie viele Hindernisse es gab, die UICollectionView in der UITableViewCell zu implementieren. Daher ist dieses Tutorial hier, ich hoffe, es spart Ihnen viel Zeit.
Hinweis: Dieses Tutorial ist nicht für Anfänger gedacht. Es wird davon ausgegangen, dass Sie mit tableViews vertraut sind und benutzerdefinierte Zellen mit xib-Dateien erstellen.
Außerdem beschreibe ich nichts über die visuelle Komponente.
1) Fügen Sie Ihrer Xib TableViewCell eine UICollectionView hinzu
- Ziehen Sie eine UICollectionView in Ihre TableViewCell Xib
- Einschränkungen hinzufügen
- Und stellen Sie fest, dass Sie Ihrer neu hinzugefügten UICollectionView keine CollectionViewCells hinzufügen können :)
Es stellt sich heraus, dass Sie eine separate Datei benötigen, um alle Zellen der Sammlungsansicht zu platzieren, die Sie anzeigen möchten. (Wenn sich Ihre UICollectionView in der Xib-Datei befindet)
2) Fügen Sie Ihrem Projekt die Dateien UICollectionViewCell und Xib hinzu

Sie können in Ihrer Xib-Zelle "Sammlungsansicht" alles tun, was Sie möchten (Beschriftung, Bild usw. hinzufügen). Für die Zwecke dieses Tutorials wird es hier nicht berührt.
Stellen Sie sicher, dass Sie Ihrer Zelle einen resuableIdentifier geben.

3) Stellen Sie sicher, dass Ihre TableViewCell-Klasse über die Protokolle UICollectionView Data Source und Delegate verfügt.
Schritt 1: Kehren Sie zu Ihrer tableViewCells Xib-Datei zurück.

Schritt 2: Ziehen Sie aus Ihrer Sammlungsansicht auf "Dateibesitzer", wählen Sie "dataSource" aus und delegieren Sie sie.

Schritt 3: Ziehen Sie aus Ihrer collectionView in Ihre TableViewCell-Klasse und erstellen Sie ein IBOutlet

Schritt 4: Stellen Sie sicher, dass die Protokolle UICollectionView Data Source und Delegate Ihrer TableViewCell-Klasse übereinstimmen.
class TableViewCell: UITableViewCell, UICollectionViewDelegate, UICollectionViewDataSource { @IBOutlet weak var collectionView: UICollectionView! override func awakeFromNib() { super.awakeFromNib()
Code Erläuterung:
- Fügen Sie der Klassenbeschreibung UICollectionViewDelegate und UICollectionViewDataSource hinzu
- Machen Sie die Datenquelle collectionView und delegieren Sie = self in awakeFromXib
- Fügen Sie die Funktion numberOfItemsInSection hinzu
- Fügen Sie die Funktion cellForItemAt hinzu
- Erstellen Sie eine Zelle mit Ihrem reuseIdentifier als benutzerdefinierter Zelle.
Schritte zur Fehlerbehebung:
- Sind meine Kennungen zugewiesen und korrekt?
- Habe ich in meiner Xib-Datei von meiner collectionView zu Files Owner gezogen?
Wenn Sie Fragen haben, schreiben Sie in die Kommentare.
Wenn dies Ihnen geholfen hat oder in Zukunft helfen wird, wie.
Ich hoffe, jemand spart viel Zeit.