Handle Touch in UiCollectionView?
Habe ich diese große UICollectionView
besetzen großen Teil des Bildschirms und es ist ein UIButton
zeigt ein Menü. Ich möchte das Menü ausblenden, wenn der Benutzer tippt auf eine beliebige Seite des Bildschirms, das wird leider nicht Teil der UICollectionView
für mich. Habe versucht, auf anderen Ansicht den folgenden code, es funktioniert gut...aber nicht für UICollectionView
. Wird die Funktion nicht aufgerufen wird.
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
hidemenu()
self.view.endEditing(true)
}
Was ist das problem? Vielen Dank für Ihre Zeit.
ODER
Wie trigger touchesBegan
im UIViewController
wo UICollectionView
befindet
- Sie können versuchen, durch deaktivieren userinteraction der Sammlung anzeigen, wenn Menü geöffnet wird , auf diese Weise
touchesBegan
genannt werden sollte. Sie können es wieder aktivieren, wenn Menü geschlossen ist. - ich kann das nicht... - Menü und Ansicht Sammlung sind in einer anderen Klasse..so ruhig Komplex denke ich
- Ok , als dieser thread könnte dir helfen. Hier diskutierten für tableview , können Sie versuchen, die gleiche für collectionview stackoverflow.com/questions/5848221/touch-events-on-uitableview
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim Antippen scrollen Controller (wie UIScrollView, UITableView, UICollection etc) nicht nennen
touchesBegan
Methode. weil Sie Ihre eigeneselector
Methode. Um solche situation, müssen Sie erstellenUITapGesture
aufUICollectionView
. Beim Antippen aufUICollectionView
, seinem Selektor-Methode aufgerufen und tun, was immer Sie wollen.Hier der link, der Sie führt. wie schaffen double-Tap-Geste auf
UICollectionView
. mit Hilfe dieser können Sie erstellt Einzel-Tap-Geste.Ansicht Sammlung + Double-Tap-Geste
Edit :
Die folgenden änderungen funktionieren.
Schritt 1 : Erklären
handleTap
imSwipeMenuViewController
.Schritt 2 : Erstellen Globale variable
SwipeMenuViewController
controller. das ist die Seite vonviewDidLoad()
Schritt 3 : Erklären
TapGesture
imviewDidLoad()
Ausgabe :
genannt streichen
Hoffe, dies hilft Ihnen.
Können Sie ein UITapGestureRecognizer der UICollectionView, und erstellen Sie eine Aktion zu entlassen, die anzeigen, wenn der Benutzer berühren, die außerhalb Ihrer Sammlung oder anderswo.
Schritt 1 Erstellen Sie eine tap-Geste zum schließen der Ansicht
Schritt 2 Mit der tap-Position realisieren Sie Ihre gewünschte Aktion
Können Sie direkt verwenden Sie diese Methode , wenn der Benutzer tippt auf einen beliebigen Teil der Sammlung anzeigen , Ihr Menü wird automatisch ausgeblendet:-
Zu erkennen, Tippen Sie auf die Räume zwischen den Zellen, hier ist der code