Botón click no responder en ScrollView cuando genero la salida de ScrollView en iOS

Tengo un Button1 fuera de ScrollView y otro Button2 dentro de scrollview. Estoy usando storyboard. He usado drag drop segue desde ambos botones a una vista diferente. Button1 funciona bien, el problema es con Button2, no funciona, no importa cuántas veces hago clic, solo funciona cuando hago clic y arrastro (¡extraño!). Cuando solucioné los problemas, descubrí que cada vez que creaba una salida de scrollview se comportaba de esta manera, si eliminaba la connection de scrollview a la salida funciona bien, pero necesito que la salida para la scrollview funcione. ¿Alguna solución sobre cómo puedo hacer esto? Este es un código de muestra de mi vista que se cargó si ayuda.

- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg.png"]]; self.scrollView.contentSize =CGSizeMake(320, 500); UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(resignKeyboard)]; [self.scrollView addGestureRecognizer:singleTap]; singleTap.numberOfTapsRequinetworking = 1; } -(void) resignKeyboard { [self.view endEditing:YES]; } 

Así es como definí la salida

 @property (strong, nonatomic) IBOutlet UIScrollView *scrollView; 

Tenga en count que Button2 Click funciona pero onclick y arrastrar / deslizar no está en clics únicos o múltiples.

EDIT: comprobé y encontré que funciona bien para el simulador 6.1 pero no para el 5.0

Compruebe que su button 2 está dentro de los límites de scrollview. Si cualquier parte del button se encuentra fuera del marco del contenedor principal, no responderá a ningún evento. Pruébelo cambiando el color del background de scrollview. También puede configurar button2.clipToBounds = YES . Si el button está fuera de límites, esa parte se recortará.

Me di count de que el problema se debía a la adición de un gesto de toque, porque cuando el button está dentro de la vista de desplazamiento, el primer toque funciona para la vista de desplazamiento y no para el button, así que todo lo que tenía que hacer era comprobar si presionar o no. Aquí está el código que solucionó este problema.

 -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { if (self.scrollView.superview != nil) { if ([touch.view isKindOfClass:[UIButton class]]) { return NO; // ignore the touch } } return YES; // handle the touch } 

Agregue el delegado UIGestureRecognizerDelegate y, en viewdidload, agregue esta línea al final

 singleTap.delegate = self; 

Tuve problemas similares. Lo que hice fue eliminar toda la jerarquía que implicaba una vista problemática (en este caso, el button 2 y la vista de desplazamiento), y luego volver a crearlos. Luego, reconstruye puntos de venta e IBActions.

Esto funciona porque storyboard es un documento xml y, a veces, xcode arruina las cosas al escribirlo.