サブビューを持つ UIScrollView にカスタム UIView を持つ iOS アプリを構築しています。
レイアウト構造は次のとおりです。
カスタムUIView(「検出されたオブジェクトヒントビュー」と呼ばれる)はScrollViewのサブビューではなく、UIScrollViewの兄弟ビューであることに注意してください。そして、カスタム UIView でタップ ジェスチャに応答したいので、UITapGestureRecognizer を UIView に追加しました。タップでは機能しますが、UIScrollView はタッチ イベントを取得しません (スクロールまたはズーム ジェスチャに応答しません)。
私はしばらくグーグルで検索しましたが、他のビューがタッチイベントに応答するには、次のメソッドを実装する必要があると多くの人が指摘しました。
- (id)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
UIView *hitView = [super hitTest:point withEvent:event];
if (hitView == self){
return nil;
}
else {
return hitView;
}
}
しかし、このメソッドをカスタム UIView に追加すると、タップ ジェスチャにも反応しなくなります (もちろん)。
カスタムUIViewでタップジェスチャを処理し、タッチイベントをUIScrollViewにも渡すにはどうすればよいのでしょうか?
本当にありがとう!