Aparentemente iOS 6 intenta manejar automáticamente la situación cuando tienes un reconocedor de gestos y un UIButton
en el mismo lugar, activándolos para el mismo gesto.Manejo de reconocedores de gestos en iOS6
Esta nueva manipulación automática resuelve el problema cuando se desea hacer clic en el botón en lugar de activar el reconocedor gesto, pero crea un nuevo problema cuando desee que el reconocedor gesto de actuar.
En iOS 5 podría implementar:
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
para transferir la acción a la UIButton
cuando en un conflicto.
Esto no parece funcionar en iOS 6. Además, invertir el comportamiento de este método (porque ahora el UIButton
tiene prioridad en lugar del reconocedor de gestos) no funcionará.
método completo:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ([touch.view isKindOfClass:[UIControl class]]){
return NO;
}
return YES;
}
tienes uigesturerec ¿Tiene un visor en una vista que tiene una subvista de uibutón y quiere que el reconocedor de gestos obtenga toques en lugar del botón? – Ahti
sí. En realidad es un 'UITableView' con' UIButtons' dentro de las celdas, y quiero que el reconocedor de gestos se active en lugar de los botones. – jturolla
¿No ha hecho esto iOS desde su origen? Siempre he tenido problemas al presionar un botón. –