Je ajoute des sous-espions à un Quelle peut être la solution possible à ce problème? P> uiscrollview code> et j'ajouterai
uipangesurerecognizer code> dans ces sous-espoirs. Tout fonctionne bien, mais maintenant après avoir ajouté
uipangesturerecognizer code> à la sous-système de la vue de défilement, le défilement n'est pas possible. p>
3 Réponses :
Le problème est que le reconnaissance de gestes panoramique est ce qui est utilisé dans la vue de défilement pour contrôler le défilement. Votre reconnaisseur de geste prend la priorité et la désactivation des vues de défilement
Si vous souhaitez toujours pouvoir faire défiler, vous pouvez définir votre geste reconnaissant pour exiger la vue de défilement une pour échouer avant de fonctionner: P>
[self.myCustomPanRecognizer requireGestureRecognizerToFail:self.scrollView.panGestureRecognizer];
ScrollView.PangESTurerecognizer Code> est uniquement disponible chez iOS5 .. Si vous souhaitez prendre en charge IOS4, vous pouvez obtenir les reconnaissants de geste de la vision de ScrollView et vérifier la classe pour obtenir le pangesturerecognizer.
merci@bastian, je n'ai pas réalisé que c'était seulement iOS 5, répondez à jour
Et si nous voulons reallow self.scrollview.pangeserurerecognizer code>
Si vous souhaitez utiliser les deux personnes simultanées, vous pouvez utiliser
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
Malheureusement, cela ne fonctionne pas avec le reconnaissance de geste qui appartiennent à la vue de défilement. Ces reconnaissants ont besoin que leur vue de défilement associée soit également leur délégué.
Eh bien, si vous ne pouvez pas changer le délégué de la reconnaissance de geste dans la vision de ScrollView, vous pouvez toujours modifier le délégué de l'autre reconnaissance.
Oui, cela est vrai, mais vous avez besoin des deux reconnaissants coordonnés de retourner oui à la méthode des délégués, je crois.
Eh bien, vous pouvez faire quelque chose comme: - (BOOL) Gesurerecognizer: (UIGESTRECOnminizer *) GesureRecognizerImmerieInvecroviitésInvecrovirez-vous: (Uigestur Erecognizer *) Autres gesticulesCognizer {Si ([SIGNEURSEURS ISEQUAL: YOURGESTERCOGNIZER] && [Autres tiers ISequal: ScrollVief.PangESTureraReCogner]) {Retour Oui; } else {// Autres calculs}}
SWIFT 4 STRT> Conforme au contrôleur d'affichage au uigesurerecognizerDelegate code> ... p>
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
if otherGestureRecognizer == scrollView.panGestureRecognizer { // or tableView.panGestureRecognizer
return true
} else {
return false
}
}
Où ajoutez-vous les sous-espions et où attachez-vous le RECONSTAUR DE GESTURE PAN?
duplicaté possible de Défilement est désactivé quand j'ajoute un uipangesturerecognizer à Uiscrollview
Vous avez demandé exactement la même question trois heures avant de poser celui-ci.
J'ai résolu ceci n'utilise pas les reconnaissants de gestes panoramiques et les touches touchées, touches, des méthodes touchées, touchées, touchées (en xamarine). Et dans Sous-StatView, lorsque je veux déplacer / Pan, je désactive le défilement sur UiscrollView Super View.