1. ホーム
  2. objective-c

[解決済み] 別のUIViewの下にあるUIViewとのインタラクションを許可する

2022-05-17 17:16:12

質問

別の UIView の下にある UIView 内のボタンと対話できるようにする簡単な方法はありますか。

たとえば、現在、私は、画面の上部と下部にオブジェクトがあり、中央には何もない UIView (A) を持っています。 これは、真ん中にボタンがある別の UIView (B) の上に置かれています。 しかし、Bの真ん中にあるボタンと対話することはできないようです。

私は B のボタンを見ることができます - A の背景を clearColor に設定しました - しかし、B のボタンは、それらのボタンの上に実際に A からのオブジェクトがないという事実にもかかわらず、タッチを受信しないようです。

EDIT - 上のUIViewのオブジェクトと対話できるようにしたい。

きっとこれを行うための簡単な方法があるのでしょうか?

どのように解決するのですか?

トップビューのUIViewサブクラスを作成し、以下のメソッドをオーバーライドしてください。

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
    // UIView will be "transparent" for touch events if we return NO
    return (point.y < MIDDLE_Y1 || point.y > MIDDLE_Y2);
}

hitTest:event:メソッドも見てみてください。