¿Cómo puedo detectar un toque en cualquier parte de la vista?

Tengo un tutorial para mi aplicación, que debería mostrarse solo la primera vez que se abre la aplicación y se debe tocar para descartar.

Estoy inicializando un UITapGestureRecognizer en mi viewDidLoad:

tapper_tut = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)]; tapper_tut.cancelsTouchesInView = FALSE; [self.view addGestureRecognizer:tapper_tut]; 

y tengo una IBAction para detectar el toque y configurar el tutorial para que oculte:

 - (IBAction)dismiss_tut{ if (????????????????) { _tutorial.hidden = YES; } } 

Pero no tengo idea de qué poner en la condición de statement if, o si esta es incluso la manera correcta de hacerlo.

¿Cómo descartaría un UIImageView en un toque?

 UITapGestureRecognizer *gr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)]; [self.view addGestureRecognizer:gr]; // if not using ARC, you should [gr release]; // mySensitiveRect coords are in the coordinate system of self.view - (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer { CGPoint p = [gestureRecognizer locationInView:self.view]; if (CGRectContainsPoint(mySensitiveRect, p)) { NSLog(@"got a tap in the region i care about"); } else { NSLog(@"got a tap, but not where i need it"); } } 

Puede hacer viewDidLoad como este

 - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; /* Create the Tap Gesture Recognizer */ self.tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTaps:)]; /* The number of fingers that must be on the screen */ self.tapGestureRecognizer.numberOfTouchesRequinetworking = 1; /* The total number of taps to be performed before the gesture is recognized */ self.tapGestureRecognizer.numberOfTapsRequinetworking = 1; /* Add this gesture recognizer to the view */ [self.view addGestureRecognizer:self.tapGestureRecognizer]; } 

Para detectar los toques puede hacer que el método sea así.

 - (void) handleTaps:(UITapGestureRecognizer*)paramSender { NSUInteger touchCounter = 0; for (touchCounter = 0;touchCounter < paramSender.numberOfTouchesRequinetworking;touchCounter++) { CGPoint touchPoint =[paramSender locationOfTouch:touchCounter inView:paramSender.view]; NSLog(@"Touch #%lu: %@",(unsigned long)touchCounter+1, NSStringFromCGPoint(touchPoint)); } } 

debe declarar el file .h como "UIGestureRecognizerDelegate"

usted recibe un toque de gesto en dos direcciones como se indica a continuación.

1) Llamar al método de delegado de GestureRecognizer (no se aplica)

 UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:nil]; // not given action. recognizer.numberOfTouchesRequinetworking=1;// here how many tap you want set it [self.view addGestureRecognizer:recognizer]; recognizer.delegate = self; - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { //whatever you want write code here return NO; } 

2) acción dada

  UITapGestureRecognizer *oneTouch=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(Addphoto)]; [oneTouch setNumberOfTouchesRequinetworking:1]; [self.view addGestureRecognizer:oneTouch]; -(IBAction)Addphoto { //whatever you want write code here } 

puede que sea de ayuda

Creo que necesitas detectar el primer lanzamiento de la aplicación que puedes hacer con el siguiente

! [[NSUserDefaults standardUserDefaults] boolForKey: @ "HasLaunchedOnce"]

Ponga esto en su statement if.