私はすべての私のViewControllerが継承するカスタムUIViewControllerを持っています。このコントローラには、私はUITapGestureRecognizerを持っています。また、inHelpModeというbooleanプロパティもあります。UITwitchまたはUITextFieldをUITapGestureRecognizerに対応させるには、それぞれ編集モードに切り替えることも、編集モードにすることもできますか?
ビューがヘルプモードにあるとき、コントロールをタップすると、コントロールの機能に関する情報がポップアップ表示されます。
これは、UISwitchとUITextFieldの2つの注目すべき例外を除いて、ほとんどのコントロールで問題なく動作します。
最初のスイッチと2番目のスイッチは編集モードになります。
ヘルプモードに入ると、コントロールが応答しなくなるだけでなく、ポップアップが表示されなくなります。コントローラをUItextFieldのデリゲートとして設定し、textFieldShouldBeginEditingをオーバーライドする場合も同じことが起こります。
userInteractionEnabledをNOに設定すると、コントロールはポップオーバーを表示するためにタップジェスチャに反応しなくなりました。 – DanielO
これらのコントロールをすべて含むビューにタップジェスチャーが1つだけ追加されていますか?または、各コントロールのジェスチャーをタップしますか?それが1回のタップジェスチャーであれば、タップの位置がコントロールの範囲内にあるかどうかを検出するためにいくつかの計算を行いますか? –
基本ビュークラスのすべてのビューから継承されるタップジェスチャーです。私はtapメソッドでhitTestを呼び出し、コントロールのタグをpopoverメッセージを含むリストと比較します。 – DanielO