2010-09-13 7 views
3

Comment activer la reconnaissance de mouvement par balayage pour un UITextView?Comment activer le mouvement de balayage pour un UITextView

Ceci est mon code et l'événement joint ne déclenche pas. Cela fonctionne pour les robinets mais pas pour les balayages.

// Add swipe support for easy textview content clean up 
UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(eraseTextWithSwipe:)]; 
[targetContent addGestureRecognizer:swipe]; 
[swipe release]; 

Comment faire cela?

+0

Je ne suis pas sûr si l'une des suggestions de cette question vous aidera; il n'y avait pas de réponses acceptées. http://stackoverflow.com/questions/2042930/successful-swipe-in-uitextview – Greg

+0

Merci pour votre commentaire mais cela ne s'applique pas, je l'ai vu. Cela utilise une technique qui n'est pas recommandée par Apple dans l'iPhone 4.x. – amok

Répondre

2

J'ai trouvé une solution qui fonctionne bien pour moi.

Vous devez définir le délégué (se référant au code ci-dessus)

swipe.delegate = self; 

alors vous devez ajouter un délégué à suivre plusieurs gestes, qui sera en mesure de suivre le glissement et le défilement

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGesture 
{ 
    yourTextbox.scrollEnabled = NO; 
    return YES; 
} 

réactivez le défilement dans la fonction de rappel (dans l'exemple ci-dessus eraseTextWithSwipe)

+0

Cela fonctionne. Belles solutions! – echo

2

Merci. Votre solution fonctionne. Je devais juste définir le délégué et retourner YES dans la méthode de délégué mentionnée. Si ce n'est pas pour des raisons d'ergonomie, il n'est pas nécessaire de désactiver le défilement sur UITextView.

Questions connexes