UINavigationController interactivePopGestureRecognizer fonctionne de façon anormale dans iOS7
Dans iOS7, nous avons un nouveau "balayez vers la gauche vers la droite" geste, c'est une fonctionnalité très utile, mais maintenant j'ai un problème avec elle.
J'utilise ce code pour personnalisé le bouton retour dans UINavigationBar
.
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:view];
mais cela désactive le "balayage de gauche à droite" geste, donc j'utilise le code ci-dessous pour garder le geste activé.
self.navigationController.interactivePopGestureRecognizer.delegate = self
Et puis, j'ai trouvé que le geste est fonctionne de façon anormale, si les ViewController a un tableView, lors de la tableView est le défilement, le geste ne sera pas déclenché. Maintenant, le geste ne peut pas être déclenchées facilement, est-il un moyen pour résoudre ce problème?
Il fonctionne! Et j'ai mis en place -
(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
, return YES;
pour désactiver le otherGestureRecognizer, donc le courant de ViewController ne recevez pas le UIPanGestureRecognizer
pour le défilement UITableView
. Maintenant, il a l'air bien, merci beaucoup!Swift 3 solution: stackoverflow.com/a/43433530/308315
OriginalL'auteur Wei | 2014-01-08
Vous devez vous connecter pour publier un commentaire.
Ce code peut wroks bien pour moi.
OriginalL'auteur Wei
Réglage de la
interactivePopGestureRecognizer.delegate
àself
est seulement la première étape. La deuxième étape consiste à mettre en œuvreLe test contre le pan geste de reconnaissance est nécessaire pour bloquer le défilement vertical d'un rouleau ou d'une table vue alors que l'interactif de la pop est en cours.
UIScreenEdgePanGestureRecognizer
quandUITableView
est de défilement, je mets en œuvre- (BOOL)shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
, etreturn YES;
.OriginalL'auteur Ortwin Gentz
Ajouter dans la Classe Controller "UIGestureRecognizerDelegate"
dans ViewDidApper ajouter
=)
ViewDidAppear
méthode.OriginalL'auteur Bruno
La solution Wei posté, n'a pas de travail pour moi. Mes écrans gelé de perdre la reconnaissance de gestes.
Je suis maintenant en utilisant AHKNavigationController par Arkadiusz Holko
http://holko.pl/ios/2014/04/06/interactive-pop-gesture/
M'a pris 30 secondes pour obtenir via CocoaPods et un autre 30 secondes pour que le programme d'installation de la classe personnalisée de mon NavigatonController via des story-boards.
OriginalL'auteur Tinkerbell