Estoy manejando toques para un par de mis componentes de UI en mi controlador de vista (subclase personalizada de UIViewController). Tiene los métodos touchesBegan:withEvent:
, touchesMoved:withEvent:
y touchesEnded:withEvent:
. Funcionaba bien Luego agregué una vista de desplazamiento (UIScrollView) como la vista superior en la jerarquía.UIScrollView previene los toquesBegan, touchesMoved, touchesEnded en el controlador de vista
Ahora mis controladores táctiles en el controlador de vista no funcionan. Ellos no son llamados. Lo interesante es que tengo varios otros componentes de UI dentro de la vista de desplazamiento que sí funcionan. Algunos son botones, algunos son vistas personalizadas que definen su propio touchesBegan:withEvent:
, etc. Lo único que no funciona son los controladores táctiles en el controlador de vista.
pensé que tal vez es porque la vista de desplazamiento está interceptando los toques para sus propios fines, pero con subclases UIScrollView y sólo para ver si podía conseguir que funcione estoy regresando YES
siempre desde touchesShouldBegin:withEvent:inContentView:
y NO
siempre desde touchesShouldCancelInContentView:
. Aún no funciona.
Si hace una diferencia mi controlador de vista está dentro de un controlador de barra de pestañas, pero no creo que sea relevante.
¿Alguien ha tenido este problema y tiene una solución preparada? Mi suposición es que los monos de la vista de desplazamiento suben por la cadena de respuesta. ¿Puedo volver a montarlo? Supongo que si no puedo entender nada más, haré que la vista de nivel superior en mi vista de desplazamiento sea una vista personalizada y reenvíe los mensajes al controlador de vista, pero parece kludgy.
seguir mi respuesta aquí http://stackoverflow.com/questions/1685956/uiscrollview-touchesbegan/17759373# 17759373 – Rajneesh071