2010-10-11 4 views
1

Comment puis-je détecter une double pression dans UIScrollview?Détecter Appuyez deux fois sur UIScrollView

J'ai essayé:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 
    UITouch *touch = [touches anyObject]; 

    if (touch.tapCount == 2) { 
     // some operations here 
    } 
} 

Mais ce ne détecte pas taper deux fois dans UIScrollView, est-il une autre façon de détecter Appuyez deux fois?

Cordialement

+0

Soyez juste un peu plus prudent avec la mise en forme lors de la publication. Si vous copiez et collez le code dans votre question et que vous le mettez en surbrillance tout en cliquant sur le bouton 011010 au-dessus de la zone de saisie, il sera formaté correctement. –

Répondre

6

Utilisez le code ci-dessous pour appuyer deux fois.

-(void) viewDidLoad{ 
    // other necessary operations 
    UITapGestureRecognizer* dTap = [[UITapGestureRecognizer alloc] initWithTarget : self action : @selector (doubleTap:)]; 

    [doubleTap setDelaysTouchesBegan : YES]; 
    dTap.numberOfTapsRequired = 2; 
    dTap.numberOfTouchesRequired = 1; 
    [self.view addGestureRecognizer : dTap]; 
    [dTap release]; 
} 

- (void) doubleTap : (UIGestureRecognizer*) sender 
{ 
    NSLog (@"Double tap Do operations here..."); 
} 
+0

Tout est OK, mais le nom du sélecteur devrait doubleTap je suppose ... –

+0

Oui, vous avez raison. Cela a été fait par erreur. Merci pour la correction. – krunal

2
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    NSUInteger numTaps = [[touches anyObject] tapCount]; 
    if (numTaps== 2) { 
     //some operations here 
    } 
} 

Utilisez ce code

+0

Merci Gyani pour répondre, mais scrollview ne détecte aucun événement tactile .... est-il un autre moyen de détecter double onglet dans scrollview? – iscavengers

+0

vous pouvez obtenir de l'aide de http://iphonedevelopertips.com/user-interface/detect-single-tap-in-uiscrollview.html – Gyani

17

Si vous ciblez 3.2+ vous pouvez essayer d'utiliser un UITapGestureRecognizer

UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTarget:yourViewController action:@selector(tapGesture:)]; 
tap.numberOfTapsRequired = 2; 
tap.numberOfTouchesRequired = 1; 
[scrollView addGestureRecognizer:tap]; 
[tap release]; 

Ensuite, vous gérer le robinet dans votre viewcontroller:

- (void)tapGesture:(UIGestureRecognizer*)gesture { 
    // Do something 
} 
+0

merci aegzorz, va essayer votre extrait ... – iscavengers

Questions connexes