灰色の背景サブビューがあり、その上にドラッグできるタイルがあります。これはすべて、1 つのビュー コントローラーで行われます。問題は、ヒット テストを実行して backgroundView を回避しようとすると、タイルがそのビューの上にあるため、それらの座標が表示され、nil を返すためタッチ移動イベントを回避することです。
以下はコードです:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
for (UIView *view in self.subviews) {
//This checks if touches are within the region of the custom view based on its cordinates.
if (CGRectContainsPoint(view.frame, point)) {
NSLog(@"touched the boat view %f %f and %f %f",view.frame.origin.x, view.frame.origin.y, point.x, point.y);
if ([view isEqual:backgroundView]) {
return nil;
}
else
return view;
}
}
return nil;
}
バックグラウンド ビューを確認していることがわかりますが、タイルはバックグラウンド ビュー上にあるため、他のロジックに基づいてドラッグされていません。userInteractiveEnabled を No にしようとしましたが、うまくいきません。助言がありますか?