フレーム(4,8)、(13,13)を持つサブビューUIボタンがあります。iOS UIButtonはフレーム外でタッチを受け取りますが、フレーム内では受け付けません
タッチAはスーパービューに対して(4,16)の位置にありますが、ボタンの境界内にあってもスーパービューに送信されます。ウィンドウ座標では、これは(49,131)です。
タッチBは1ピクセル左に(48,131)のウィンドウ座標がありますが、範囲外であってもサブビューボタンに送信されます。ビューはUIButtonの(-1,7)位置を報告します。
タッチ
<UITouch: 0x7b2ddeb0> phase: Ended tap count: 1
window: <DebugWindow: 0x791357f0; baseClass = UIWindow; frame = (0 0; 320 480); layer = <UIWindowLayer: 0x791358d0>>
view: <QueueOverlayCellView: 0x7b1ca320; frame = (2 2; 269 30); tag = 1; layer = <CALayer: 0x7b1ca3a0>>
location in window: {49, 131} previous location in window: {49, 131}
location in view: {4, 16} previous location in view: {4, 16}
タッチB
<UITouch: 0x7b442e90> phase: Ended tap count: 1
window: <DebugWindow: 0x791357f0; baseClass = UIWindow; frame = (0 0; 320 480); layer = <UIWindowLayer: 0x791358d0>>
view: <TableButton: 0x7b1cada0; baseClass = UIButton; frame = (4 8; 13 13); opaque = NO; layer = <CALayer: 0x7b1cae40>>
location in window: {48, 130} previous location in window: {48, 130}
location in view: {-1, 7} previous location in view: {-1, 7}
スーパーは、カスタムpointInsideメソッドを実装していません。
サブビューの範囲外のタッチをサブビューに転送でき、サブビューの境界にあるタッチがスーパービューに転送されるのはどうですか?