una todos que porque persona llama guia demas cualidad como caracteristicas cae bien ayudar alos objective-c xcode uigesturerecognizer swipe

objective-c - todos - guia qgis



Desactivar reconocedor de gestos (3)

¿Por qué no configura el delegado para el reconocedor de gestos de barrido y los maneja dentro del mismo método de delegado?

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { if ( [gestureRecognizer isMemberOfClass:[UITapGestureRecognizer class]] ) { // Return NO for views that don''t support Taps } else if ( [gestureRecognizer isMemberOfClass:[UISwipeGestureRecognizer class]] ) { // Return NO for views that don''t support Swipes } return YES; }

Tengo dos tipos de reconocedores, uno para tocar y otro para deslizar

UIGestureRecognizer *recognizer; //TAP recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(numTap1:)]; [(UITapGestureRecognizer *)recognizer setNumberOfTouchesRequired:1]; [self.view addGestureRecognizer:recognizer]; self.tapRecognizer = (UITapGestureRecognizer *)recognizer; recognizer.delegate = self; [recognizer release]; //SWIPE RIGHT recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRight:)]; self.swipeRightRecognizer =(UISwipeGestureRecognizer *)recognizer; swipeRightRecognizer.direction = UISwipeGestureRecognizerDirectionRight; [self.view addGestureRecognizer:swipeRightRecognizer]; self.swipeRightRecognizer = (UISwipeGestureRecognizer *)recognizer; [recognizer release];

con esta función puedo desactivar los toques en algunos objetos.

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { if ((touch.view == loseView) || (touch.view == subBgView) || (touch.view == btnAgain)) { return NO; } return YES; }

¿Cómo puedo desactivar los golpes?

¡Muchas gracias!


Tengo un problema similar. Algunos de mis usuarios con discapacidad tocan y deslizan al mismo tiempo, por lo que la aplicación pasa a la siguiente pantalla. Configuré una opción para permitirles usar un toque de tres dedos en su lugar. Necesito invocar la opción del delegado popoverControllerDidDismissPopover y cuando la aplicación se inicia por primera vez. Entonces escribí un método que combina las respuestas anteriores. Busca todos los reconocedores de gestos de barrido y los apaga, luego enciende mi reconocedor de gestos de toque.

- (void)changeGestureRecognizer { // Three finger tap to move to next screen if ([Globals sharedInstance].useDoubleTapToMoveToNextScreen) { // Let’s see which gestures are active and turn off the swipes for (UIGestureRecognizer *gestureRecognizer in self.view.gestureRecognizers) { NSLog(@"The gestureRecognizer is %@", gestureRecognizer); if ( [gestureRecognizer isMemberOfClass:[UISwipeGestureRecognizer class]] ) gestureRecognizer.enabled = NO; } // Add the three finger tap UITapGestureRecognizer *twoFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeNext)]; [twoFingerTap setNumberOfTapsRequired:1]; [twoFingerTap setNumberOfTouchesRequired:3]; [self.view addGestureRecognizer:twoFingerTap]; } }


UIGestureRecognizer tiene una propiedad llamada enabled . Esto debería ser lo suficientemente bueno para deshabilitar tus golpes:

swipeGestureRecognizer.enabled = NO;