He estado desarrollando un juego simple para iOS que implica arrastrar y usar rotaciones y otros reconocedores de gestos. El arrastre se realiza a través del touchesBegan/Moved/Ended
y el reconocedor de rotación.Uso de la lógica de hitTest solo para toques reconocedores BEE y NO de gestos
Las vistas son de forma irregular, y las fronteras de vista a veces se superponen, por lo que implementan de Ole Belgeman UIImage+ColorAtPixel en mi vista de imagen y anularon isPointInside
método en el principal elemento de vista . isPointInside invoca el método en picture view, que comprueba alfa en el punto de contacto y devuelve NO si se ha tocado la sección transparente. Esencialmente, hitTest
ignora esta rama.
Pero el efecto secundario es que hitTest ignora todos los toques en la sección transparente, y el reconocedor de rotación solo funciona en la zona no transparente. Para algunos puntos de vista, que son demasiado pequeños en tamaño, se hace imposible utilizar el gesto de rotación :(
¿Hay alguna manera de evitar de alguna manera este problema y utilizar la lógica hitTest
única para touchesBegan
? Traté de trabajar la solución a cabo , pero parece que HitTest funciona estrictamente antes de cualquier manipulación táctil.
Comprobando la transparencia en touchesBegan
funciona, pero cuando toca la sección transparente, que se superpone a la sección no transparente de la otra vista, esta última no recibe el toque.
No puedo entender el truco ...
Gracias de antemano por cualquier ayuda!