VoiceOverを有効にしてジェスチャーをテストしています。setプロパティallowsMultipleSelection=YESを持つUITableViewのインスタンスを含むビューがあります。以下を表示するためにUITapGestureRecognizerのインスタンスを追加しました。
UITapGestureRecognizer *doubleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onDoubleTap)];
doubleTapRecognizer.numberOfTapsRequired = 2;
doubleTapRecognizer.numberOfTouchesRequired = 1;
doubleTapRecognizer.cancelsTouchesInView = YES;
doubleTapRecognizer.delaysTouchesBegan = YES;
[mainView addGestureRecognizer:tapRecognizer];
これは、3回タップすると(1回以上)、VoiceOverが有効になっている場合に機能します。しかし、セルを選択した場合(VoiceOverモードでダブルタップ)、セルが選択されているが、セルが選択されているという情報がない音声メッセージが表示された場合(すでに選択されているセルを1回タップすると、適切な情報があります)。doubleTapRecognizer.delaysTouchesBegan = NOに設定すると、選択と音声メッセージはVoiceOverモードで問題ありませんが、3 xタップすると、メソッドonDoubleTapが呼び出されますが、最後にフォーカスされたセルも選択/選択解除されます(2 xタップのように)。したがって、このソリューションは私にとって適切に機能していません。
Iphoneユーザーガイドで、VoiceOverモードでは3回のタップが定義されていることがわかりました:「トリプルタップ:アイテムをダブルタップします。」-したがって、予約されています。タップをnumberOfTapsRequired=3に変更してみました。-しかし、VoiceOverモードでは機能しません-画面に1本の指を置き、2本目の指で3回タップすると、機能することをテストしました。これは適切な方法でどのように行う必要がありますか?また、適切な解決策を作成するために、VoiceOverモードでジェスチャがどのように処理されるかについての詳細情報を見つけることができます(たとえば、長押しなどの他のジェスチャを追加する場合、Voice Overモードでどのようにトリガーする必要がありますか)。
-
よろしく
アダム