所以我正在开发一个应用程序,我的所有手势都可以被识别。当我尝试在手指触摸屏幕的任何地方添加 UIImageViews
时,我的问题就来了。
这些 View 将跟随手指,他们确实这样做了,但问题是我相信他们正在吞下触摸,不允许识别手势。我试过:
[_fingerHolder1 setUserInteractionEnabled:NO];
[_fingerHolder2 setUserInteractionEnabled:NO];
但似乎并没有改变什么。
我在 ccTouchesBegan/Moved/Ended
方法中添加这些 View ,而手势在各自的处理程序中被识别。
我已经研究过使用 UIPanGesture
但我在识别滑动以及设置手指跟踪器的 UIImageViews
的坐标时遇到了一些问题.我应该对此进行更多试验还是有不同的解决方案?
感谢任何帮助!
最佳答案
UIImageView 将接收和处理触摸,因此它们不会被转发到 cocos2d OpenGL View (也是 UIView)。
为了完成这项工作,您需要创建 UIImageView 的子类并覆盖每个 touches… 方法并手动将事件转发到 cocos2d 的 View ,这里是 touchesBegan 的示例:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[[CCDirector sharedDirector].view touchesBegan:touches withEvent:event];
}
使用这个 UIImageView 子类代替您当前使用的原始子类。
这将使常规的 cocos2d 触摸事件正常工作,并且如果您将 UIGestureRecognizers 添加到 cocos2d 的 View 中,它还应该使 UIGestureRecognizers 的行为符合预期。
关于ios - 手指追踪和手势识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16201710/