2011-02-03 2 views
0

グリッドとして配置されたUIViewControllerページに4つのサブビューがあります。アニメーションがサブビューで実行されることがあります。私はサブビューの1つ(UITapGestureRecognizerを使用して)のタップを認識しようとしています。iOS:アニメーションが行われているときにジェスチャ認識をより反応的にするにはどうすればよいですか?

アニメーションが実行されていないときは、タップがスムーズに認識されます。しかし、アニメーションが実行されているとき、ほとんどのタップは認識されません(アニメーションが別のサブビューで実行されている場合でも)。

ジェスチャ認識プログラムの優先度をアニメーションより高くする方法はありますか?どんな提案も感謝しています。ありがとう

答えて

1

問題は、アニメーションのoptioアニメーションオプションとしてUIViewAnimationOptionAllowUserInteractionを追加した後、うまく動作します。

0

このは、のように聞こえますが、メインスレッドが古くなっています。マルチスレッド化はあなたの問題を解決します。

-(void)performAnimations{ 
    //Do your animations in this method 
}

あなたが別の方法であなたのアニメーションを持っていたら、あなたがこれを行うのは自由です:

[self performSelectorInBackground:@selector(performAnimations)];

これはあなたのメインを残す

はこのような何かをスレッドのイベントを認識することができます:)

+0

私はこれを試しましたが、アニメーションの実行中に応答しない同じ効果が得られました。マルチスレッドが動作する前に何か設定する必要はありますか? – Shameem

+0

自動解放プールを追加し、新しいメソッド構造でアニメーションがうまく動作する場合は、アニメーションコードをクリーンアップするときがあります。私の経験では、iPod touchの2G以上では、通常どおりの使用事例がほぼあります。ジェスチャーの認識をより敏感にするためにあなたができることは何も考えられません。ごめんなさい。 –

関連する問題