Ajouter des fonctionnalités à la reconnaissance de gestes de pan standard dans un UIScrollView

J'essaie de savoir où se trouve un doigt dans un UIScrollView . J'ai sous- UIScrollView (voir ci-dessous) mais malheureusement, le système de reconnaissance de gestes que j'ajoute remplace celui standard.

Par conséquent, j'ai NSLog(@"Pan") pour fonctionner, mais malheureusement, la vue ne défile plus.

Comment puis-je faire fonctionner les deux outils de reconnaissance de gestes en même time?

Merci.

 - (void)viewDidLoad:(BOOL)animated { [super viewDidLoad:animated]; UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)]; [scrollView addGestureRecognizer:panRecognizer]; } - (void)pan:(id)sender { NSLog(@"Pan"); } 

Si vous voulez qu'il ne remplace pas celui standard, il suffit de permettre aux deux d'être reconnus simultanément.

 - (void)viewDidLoad:(BOOL)animated { [super viewDidLoad:animated]; UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)]; panRecognizer.delegate = self; [scrollView addGestureRecognizer:panRecognizer]; } - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { return TRUE; } - (void)pan:(id)sender { NSLog(@"Pan"); } 

EDIT : cette méthode fonctionne! Vous avez juste besoin de définir canCancelContentTouches dès que possible (je le fais dans viewDidLoad ).

RÉPONSE ORIGINALE : J'ai essayé une nouvelle approche mais malheureusement cela ne fonctionne pas complètement.

Au lieu d'append un outil de reconnaissance de gestes, je sous-class UIScrollView et écrit mes propres touchesBegan , touchesMoved , etc.

De cette façon je sais où l'user touche mais malheureusement le PanGestureRecognizer triggers des touchesCancelled chaque fois que je commence à faire défiler même après avoir mis le canCancelContentTouches à NO .

Est-ce que quelqu'un sait pourquoi? J'ai aussi trouvé ça .