UIViewが画面の角を占めるカスタムUIViewControllerを持っていますが、そのほとんどは透明です。そのビュー上のオブジェクトのレイアウトのため、ビューのフレームは、その下のいくつかのボタンを隠すことができます。私は、その上で重要な何かに触れていない場合は、そのビューのタッチを無視することができるようにしたいが、私は実際のタッチイベント(touchesEnded/nextResponderもの)に沿って渡すことができるようだ。 UIButtonやそれ以外のものがある場合は、どうすればそのタッチイベントを渡すことができますか?タッチイベントを無視して別のサブビューのUIControlオブジェクトに渡す方法はありますか?
このカスタムViewControllerをさまざまなビューで使用できるため、ボタンセレクタを呼び出すだけで手動で判断することはできません。同様Uicontrolのタイプの
[self.nextResponder touchesEnded:touches withEvent:event];
:私は基本的にこれを呼び出すための方法が必要です。
これは私がやりたがっているようですが、タッチを無視したいビューは私が作成したUIViewControllerのビュープロパティです。そのビューのhitTest関数をオーバーライドする方法はありますか? –
@chris:もちろん、サブクラス化して上記のようにオーバーライドされたメソッドを投げるだけです。これは、余分な '.h'と' .m'ファイルを少しだけコードで囲んでいることを意味しますが、それは仕事をするでしょう。また、パススルービューは、ツールキットに含めるのに便利なサブクラスです。 View Controllerが 'nib'でビューを作成する場合は、IBファイルに入り、IDインスペクタでビューのクラスを新しいサブクラスに変更します。プログラムによって作成された場合は、 'loadView'でビューサブクラスを作成して割り当てます(編集を参照)。 – Stuart
素敵なアドバイス!私は一日中良い解決策を探してきました。ありがとう。 – Judioo