2016-04-16 6 views
0

Lorsque je touche un UIButton, les méthodes touchesBegan, touchesMoved et touchesEnded ne sont pas appelées. Je veux effectuer un événement lorsqu'un contact continu se produit et annuler l'événement lorsque le toucher se termine.touchesBegan et touchEnded non appelé sur un UIButton

+1

double possible de [touchesBegan/déplacés/ne fonctionne pas avec clos le Xcode 6.3] (http://stackoverflow.com/questions/29552897/touchesbegan-moved-ended-not-working-with-xcode-6- 3) – kb920

+0

Vérifiez que 'userInteractionEnabled' est défini sur true sur le bouton et tous ses aperçus. C'est vrai par défaut pour la plupart des 'UIViews', mais il y a quelques exceptions. – Hamish

+0

Pour uibutton, cela ne s'appelle pas –

Répondre

0

Vous pouvez suivre UIButton Touch Start et Touch End à l'aide des événements de contrôle UIButton.

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    [self.button addTarget:self action:@selector(touchStarted:) forControlEvents:UIControlEventTouchDown]; 
    [self.button addTarget:self action:@selector(touchEnded:) forControlEvents:UIControlEventTouchUpInside]; 
    [self.button addTarget:self action:@selector(touchEnded:) forControlEvents:UIControlEventTouchUpOutside]; 
} 


- (void)touchStarted:(id)sender { 
    NSLog(@"Touch started"); 
} 

- (void)touchEnded:(id)sender { 
    NSLog(@"Touch ended"); 
}