No cree una nueva vista para su reconocedor de gestos. El reconocedor implementa un método locationInView: Configúrelo para la vista que contiene la región sensible. En handleGesture, haga una prueba de la región que le interese así:
0) Haga todo esto en la vista que contiene la región que le interesa. No agregue una vista especial solo para el reconocedor de gestos.
1) Configuración mySensitiveRect
@property (assign, nonatomic) CGRect mySensitiveRect;
@synthesize mySensitiveRect=_mySensitiveRect;
self.mySensitiveRect = CGRectMake(0.0, 240.0, 320.0, 240.0);
2) Crear su gestureRecognizer:
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");
}
}
El rect sensible deben ser inicializado en el sistema de coordenadas de myView, la misma vista a la que se conecte el reconocedor.
Lo sentimos pero, ¿qué hará esto? y para la variable mySensitiveRect, ¿uso (0, 0, 320, 480)? ¿Tienes un ejemplo completo? Gracias: D –
@DavidMurray: espero que sea más claro – danh
Gracias, eso lo hizo. :-) –