0

だから私はすべてのジェスチャーが認識されているアプリを開発しています。私の問題はUIImageViews、指が画面に触れているところに追加しようとすると発生します。

これらのビューは指をたどる必要がありますが、問題は、ジェスチャを認識できないようにタッチを飲み込んでいると思われることです。私が試してみました:

[_fingerHolder1 setUserInteractionEnabled:NO];
[_fingerHolder2 setUserInteractionEnabled:NO];

しかし、何も変わっていないようです。これらのビューをccTouchesBegan/Moved/Endedメソッドに追加していますが、ジェスチャーはそれぞれのハンドラーで認識されています。

の使用を検討しましたUIPanGestureが、これを行っている間、スワイプを認識しUIImageViewsたり、フィンガートラッカーの座標を設定したりするのに問題があります。これをもっと実験する必要がありますか、それとも別の解決策がありますか?

どんな助けでも大歓迎です!

4

2 に答える 2

2

UIImageView はタッチを受け取って処理するため、タッチは cocos2d OpenGL ビュー (UIView でもあります) には転送されません。

これを機能させるには、UIImageView のサブクラスを作成し、各 touches… メソッドをオーバーライドして、手動でイベントを cocos2d のビューに転送する必要があります。touchesBegan の例を次に示します。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [[CCDirector sharedDirector].view touchesBegan:touches withEvent:event];
}

現在使用している元の UIImageView サブクラスの代わりに、この UIImageView サブクラスを使用してください。

これにより、通常の cocos2d タッチ イベントが機能し、UIGestureRecognizer を cocos2d のビューに追加した場合は、UIGestureRecognizer が期待どおりに動作するようになります。

于 2013-04-24T21:04:32.310 に答える