2010-09-27 11 views
3

J'utiliséiPhone UIGestures

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)]; 
[self.view addGestureRecognizer:singleTap]; 
- (void)handleSingleTap:(UIGestureRecognizer *)gestureRecognizer { 
    UIView* view = gestureRecognizer.view; 
    CGPoint loc = [gestureRecognizer locationInView:view]; 
} 

Mais cela m'a donné une erreur à CGPoint loc = [gestureRecognizer locationInView:view]; Pourquoi ???

+0

? Que dit le message d'erreur? – LarsJK

+0

[UITapGestureRecognizer locationInView:]: sélecteur non reconnu envoyé à l'instance 0x193490 *** Fin de l'application en raison d'une exception non interceptée 'NSInvalidArgumentException', raison: '*** - [UITapGestureRecognizer locationInView:]: sélecteur non reconnu envoyé à l'instance 0x193490' – a111

Répondre

0

essayez d'utiliser:

CGPoint loc = [gestureRecognizer locationInView:self.view]; 

ou bien renommer le UIView * vue .. comme ceci:

UIView* gesturevView = gestureRecognizer.view; 
CGPoint loc = [gestureRecognizer locationInView:gesturevView]; 
+0

J'ai utilisé ceci aussi Mais la même erreur est donnée. J'ai créé une application universelle sur ipad j'ai utilisé la classe UIGesture parfaitement mais sur iphone son donne moi l'erreur – a111

+0

Quelle version d'OS courez-vous dessus? UIGestureRecognizers ne doit pas être utilisé avant la version 4.0. –

1

Je ne vois pas d'erreur dans votre code, mais l'erreur indique que le instance de gestureRecognizer en cours de transmission n'est pas un UITapGestureRecognizer. Mettez un point d'arrêt sur la ligne défaillante et récupérez les informations de type gestureRecognizer.

À côté: Assurez-vous que vous utilisez SDK 4.0 ou supérieur à partir de l'iPhone. Gesture Recognizers est arrivé à 3.2 pour iPad et 4.0 pour iPhone.) Je suppose que vous êtes d'accord, car je pense que vous obtiendriez une erreur plus tôt si vous n'utilisiez pas le bon SDK.