下のUIViewにイベントを通過させる

重なった2つのビューのうち、上のビューのイベントを下のビューに送りたい。

上のビューAをタッチした場合に、何もしないで下に位置するビューBにイベントを送りたい場合があります。Bは単にAの下に重なっているだけで、Aのサブビューではありません。

こんな場合は、Aの側で

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
    UIView *view = [super hitTest:point withEvent:event];
    if (view == self) {
        return nil;
    }
    return view;
}

とすればいいようです。もっと単純に

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
    return NO;
}

でもうまくいくようです。

以下のサイトを参考にしました。

コメント