私が正しく理解していれば、UITableViewでジェスチャーが行われた場合にMKMapViewがまったく反応しないようにする必要があります(例では、myMKMapViewのmyTableViewプロパティが問題のUITableViewです)。もしそうなら、あなたは実装する必要があります
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;
MKMapView のサブクラスで (サブクラスがない場合はサブクラスを作成します。この例ではサブクラス myMKMapView を呼び出しました)。MKMapView のサブクラスである myMKMapView をUIGestureRecognizerDelegate
プロトコルに準拠させることから始めます。MKMapView の .h ファイルで:
@interface myMKMapView : MKMapView <UIGestureRecognizerDelegate>
これが完了したら、myMKMapView の .m ファイルに移動し、次のように実装します。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
UIView *view = [self.view hitTest:[touch locationInView:self.view] withEvent:nil];
if ([view isDescendantOfView:(self.myTableView)]) {
return NO;
}
return YES;
}
これにより、myMKMapView は、その myTableView プロパティでジェスチャが実行された場合、myMKMapView がそれを無視する必要があることを伝えます。