2011-08-15 7 views
1

私は本当に奇妙な問題があり、説明するのは難しいかもしれませんが、何か助けや提案をいただければ幸いです。UIAlertViewポップアップの間のUIGestureRecognizerイベント

私は、左右のジェスチャーを検出するUIGestureRecognizerを持つベースビュー(ビューB)を持っています。

ビューBの上には、ビュー全体をカバーするいくつかの小さなビュー(ビューC)があります。 (それをカレンダーと考える)。

各ビューCには、タップジェスチャ認識機能と長い押しジェスチャ認識機能があります。タップジェスチャーでは、私はUIAlertViewを表示します。

ので、ここで問題です:

私はビューCをタップしUIAlertViewが表示される前にビューB、およびView Bスワイプイベント火災をスワイプすることができます。これは私のアプリケーションをクラッシュさせます。なぜなら、ビューBがスワイプイベントで削除され、ビューCがビューBの上にあるのでそれらも削除され、alertView:clickedButtonAtIndex:にはまったく到達しないからです。

UIAlertViewが表示される前にスワイプが起こらないようにする方法はありますか?助けてくれてありがとう!

答えて

1

タップイベントが登録されているかどうかを示す.hファイルのグローバル変数BOOLを作成してみてください。タップが登録されたときに呼び出す方法で変数をNOに設定し、スワイプが登録されたときに呼び出すメソッドで変数がYESまたはNOであるかどうかを確認し、NOの場合はタップを意味します登録されているため、スワイプメソッドを使用しないでください。次に、UIAlertViewが辞任した後に変数をYESに設定するだけです。希望が助けてくれる!

1

あなたが言ったように、Cビューは完全にビューBをカバーします。したがって、アラートが表示されていない限り、Bのスワイプジェスチャーは登録しないでください。 (void)didPresentAlertView:(UIAlertView *)alertView;にBのジェスチャ認識機能を追加できます。

そしてalertView:clickedButtonAtIndex:では、Bのジェスチャ認識機能を削除できます。

HTH、

Akshay