Ich habe ein UICollectionView
, das horizontales und vertikales Scrollen unterstützt. Jede Sammlungsansichtszelle ist eine Unterklasse von UICollectionViewCell
und sie werden von einer NIB geladen, die UIButton
, UITableView
und sogar noch eine UICollectionView
enthält. Sie sind alle in TPKeyboardAvoidingScrollView
.
Das Scrollen funktioniert perfekt sowohl horizontal als auch vertikal, aber es empfängt keine Berührungsereignisse für die Elemente in der einzelnen UICollectionViewCell
. Wenn ich eines der Elemente berühre, sage eine Schaltfläche, die Teil von UICollectionViewCell
ist, dann bekomme ich nur das didSelectItemAtIndexPath
-Ereignis auf dem UICollectionViewDelegate
- ich kann kein Touch-Ereignis an einen der beiden übergeben Unteransichten der Sammlungsansichtszelle, auf die der Tap erfolgt.
Nachdem ich einige andere stackoverflow-Artikel gelesen hatte, fand ich schließlich, was mein Problem verursachte - die XIB-Datei, die ich zur Initialisierung der UICollectionViewCell verwendet hatte, hatte ein normales UIView-Element am Stamm; obwohl es als Unterklasse einer UICollectionViewCell markiert war und sich auf andere Weise gut verhielt, verhinderte das, dass die Ereignisse durchflossen wurden.
Also - wenn Ihre benutzerdefinierte UICollectionViewCell XIB-Datei im Root-Verzeichnis so aussieht (siehe das Symbol neben der Dateneingabe-Matrixansicht, das ist der Name für meine UICollectionViewCell-Unterklasse), dann haben Sie das gleiche Problem:
Meine Lösung bestand darin, der XIB eine geeignete UICollectionViewCell-Klasse hinzuzufügen, dann alle Unteransichten unter der vorhandenen Dateneingabe-Matrixansicht in diese zu verschieben, die alte Wurzel zu löschen und dann die Outlets erneut zu verbinden. Das Endergebnis sieht so aus:
Sie können das andere verwendete Symbol sehen - das ist was Sie wollen. Sobald ich mein XIB so änderte, wurden die Ereignisse durchgeleitet.
In der XIB-Rohdatei (Ansicht als Quelle) führte die nicht arbeitende Version das Wurzelelement als
ein %Vor%während die Arbeitsversion dieses Wurzelelement in
geändert hat %Vor%Hoffe, das spart jemand anderen ein paar Stunden ...
a haben das gleiche Problem für UIButton in meiner benutzerdefinierten UICollectionViewCell
Hinzufügen dieser Funktion zu meinem UICollectionViewCell
gelöst Problem für mich:
Tags und Links uicollectionview uicollectionviewcell events subview