@zenithが説明したように、透過的なサブビューを追加した後、hittestを利用できます。
UIResponderでのhitTest:withEvent:の実装は、次のことを行います。
自己のpointInside:withEvent:を呼び出します
戻り値がNOの場合、hitTest:withEvent:はnilを返します。物語の終わり。
戻り値がYESの場合、hitTest:withEvent:メッセージをサブビューに送信します。トップレベルのサブビューから開始し、サブビューがnil以外のオブジェクトを返すか、すべてのサブビューがメッセージを受信するまで、他のビューに進みます。
サブビューが初めてnil以外のオブジェクトを返す場合、最初のhitTest:withEvent:はそのオブジェクトを返します。物語の終わり。
サブビューがnil以外のオブジェクトを返さない場合、最初のhitTest:withEvent:はselfを返します。このプロセスは再帰的に繰り返されるため、通常、ビュー階層のリーフビューが最終的に返されます。
ただし、hitTest:withEventをオーバーライドして、別のことを行うことができます。多くの場合、pointInside:withEvent:のオーバーライドはより単純であり、アプリケーションでのイベント処理を微調整するための十分なオプションを提供します。