0

Probleme mit dem Überschreiben der Superklasse haben - immer den Fehler "Methode überschreibt keine Methode aus ihrer Superklasse". Die Sammlungsansicht und der Pan sind alle eingerichtet, ich möchte nur das Seitwärtsschwenken deaktivieren (wenn das ein Wort ist).UIPanGestureRecognizer für UICollectionView überschreiben

ich bleibe dieses Recht an der Unterseite meiner Klasse:

override func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool { 
    if let panGestureRecognizer = gestureRecognizer as? UIPanGestureRecognizer { 
     let translation = panGestureRecognizer.translationInView(collectionView!) 
     if fabs(translation.y) > fabs(translation.x) { 
      return true 
     } 
     return false 
    } 
    return false 
} 

Irgendwelche Ideen? Ich poste meine jazzige Collectionsview und ihre Panning-Fähigkeiten als Belohnung für diejenigen, die dazu beitragen.

+0

Ich habe nur doppelt überprüft, es funktioniert an meinem Ende. Auf Rechtschreibfehler prüfen? Es sieht in dieser Beschreibung allerdings richtig aus. –

Antwort

1

Sie können diese Methode nicht überschreiben, da sie nicht Teil Ihrer Oberklasse (UICollectionView) ist. Sie müssen das Protokoll UIGestureRecognizerDelegate in Ihrer Klasse übernehmen und die override entfernen.

Angenommen, Sie haben eine UIPanGestureRecognizer entweder im Storyboard oder programmatisch erstellt, müssen Sie den Delegaten von UIPanGestureRecognizer auf self setzen, wenn Ihre Ansicht geladen wird.

Vergessen Sie auch nicht, den panRecognizer zu Ihrer Sammlungsansicht hinzuzufügen.

panGesture.delegate = self 
collectionView.addGestureRecognizer(panGesture) 
+0

Ich habe all diese Dinge getan, die Sie vorgeschlagen haben, außer das "override" zu entfernen. Ich fürchtete, es würde es nicht ohne es nennen, aber Sie haben Recht Herr J ... Sie haben mein Problem behoben. Vielen Dank. –

Verwandte Themen