UITableView innen UICollectionView Umgang berührt.
Ansicht Sammlung besteht aus einer einzigen Zeile, der horizontal ausgerichtet Zellen, die Größe ist die gleiche Größe wie die Sammlung anzeigen der Grenzen, einzelne Zelle füllt den gesamten Bildschirm aus.
Das problem ist, dass die Sammlung Ansicht zu sein scheint abfangen alle Pfannen. Wie kann ich eine Weiterleitung auf die Tabelle, so kann ich auch scrollen Sie in der Tabelle senkrecht.
Ich will vertikalen Schwenk zu liefern, um die Tabelle in der Zelle, so kann es nach oben und unten scrollen. Ich will horizontalen Schwenk zu liefern, um die Sammlung anzuzeigen, so kann er horizontal Rollen.
Irgendwelche Ideen? Danke.
- Verwenden Sie storyBoard,versuchen tableView innen collectionViewCell.collectionView als Untersicht von selbst.anzeigen
- Ansicht Sammlung ist eine Untersicht der Sicht schon. Ansicht Tabelle eingefügt wurde, in die Prototyp-Zelle einer Sammlung anzeigen, also während der Laufzeit in seiner Zelle.contentView. Hähne bekommen, geliefert an den Tisch, ich kann sehen, dass die Zellen im inneren immer ausgewählt.
- Ja,ziehen Sie tableView in die Zelle Platz(Zelle.contenView). Zeigen einige code.
- Ja, das ist, was ich habe, bereits. Doesn ' T scheinen zu den trick tun. Es ist kein code wirklich. Ich mache einfach nur "return collectionView dequeueReusableCellWithReuseIdentifier:@"Probe" forIndexPath:indexPath]"
- Vergessen Sie nicht delegieren, Datenquelle für tableView.Versuchen Sie, einige anzeigen tableCell und testen.
- Hinzufügen Delegierter/Datenquelle und Darstellung der Zelle noch nicht helfen. Ich bin mir ziemlich sicher, ich habe zu überschreiben, berühren Sie die Lieferung oder verändern Geste recognisers, seine nur, dass ich nicht wirklich weiß, wie.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für UITableView innen CollectionView mit storyBoard, Folgen Sie bitte diesen Schritten:
Ziehen CollectionView, um UIViewController, ziehen Sie datasource auf UIViewController(ziehen Sie nicht delegieren). Hinzufügen datasource-Methoden im ViewController.m
-Zelle erstellen:CollectionViewCell Klasse. wählen Sie Klasse für die Zelle im storyBoard-zu-Zelle-Klasse,angeben, Wiederverwendung ID.
Ziehen tableView innen collectionCell Platz. delegieren, Datenquelle ziehen zu CollecionCell Platz zu. Hinzufügen tableView datasource, delegate im inneren der Zelle.m
Erstellen CellDelegate bei der Umsetzung tableViewDidSelect drin. Die übertragung dieser Delegierten zu UIViewController, um die Durchführung von anderen Maßnahmen
Beispielcode: https://github.com/lequysang/github_zip/blob/master/TableViewInCollection.zip
Swift2 update - Wir brauchen Sie nicht zu tun alle der oben genannten Schritte. Nur machen die controller delegate und datasource der beiden tableview und Sammlung anzeigen funktioniert Prima.
Habe ich in der Lage diese Arbeit zu machen, ohne die Verwendung von storyboards-obwohl, ich benutze XIBs für meine Ansichten, aber nur, um hinzuzufügen, die Autolayout-Regeln. Alle Anpassungen (Farben, Schriften, Beschriftungen, etc.) sind im code festgelegt. In jedem Fall sollte dies auch für Zellen, die gebaut werden programmgesteuert.
Wie es zu tun:
Ist die wichtigste Sache zu erinnern ist, um fügen Sie Ihre benutzerdefinierte Ansicht zur
contentView
- Eigenschaft der Zelle und nicht in der Zelle selbst. Wenn Sie mit XIBs für die benutzerdefinierteUICollectionViewCell
, lassen Sie es leer. Instanziieren Sie Ihre benutzerdefinierte Ansicht (wo dieUITableView
ist), dann fügen Sie es als eine Untersicht derUICollectionViewCell
'scontentView
. Wenn Sie fügen Sie die Tabelle vie direkt in der Ansicht Sammlung Zelle der Tabelle nicht vertikal scrollen.Implementieren
shouldSelectItemAtIndexPath
undshouldHighlightItemAtIndexPath
desUICollectionViewDelegate
und machen beide zurückfalse
, so dass Tippen auf der Ansicht Sammlung Zelle nicht abfangen mit Wasserhähnen vorgesehen für den Tisch, den Blick ins innere.Erfolgt mit Xcode 7.3 für iOS 9+.