MKMapView即使在注释后面也会响应触摸

时间:2012-12-05 00:54:15

标签: ios mapkit

我有一个自定义注释视图占据了屏幕的很大一部分。在里面我有一个UITableView和一些标签。

UITableView正确处理单元格选择。但是,如果我双击UITableView或自定义注释视图上的任何位置,地图将缩放。

首先,我很想知道这是怎么回事。其次是如何阻止它发生。

1 个答案:

答案 0 :(得分:0)

我想我已经弄明白了。发生的事情是MKMapView附有手势识别器。

我通过继承MKMapView并实现了shouldReceiveTouch来解决部分问题。双击仍然可以通过注释视图,但这不是一个问题。这是真正的可用性问题。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    UIView * v = touch.view;
    while( v ){
    if( [v isKindOfClass:[SPAnnotationView class]] ){
        SPAnnotationView * aV = (SPAnnotationView *)v;
        if( [aV isExtendedAnnotation]){
            return NO;
        }
    }
        v = v.superview;
    }

    return [super gestureRecognizer:gestureRecognizer shouldReceiveTouch:touch];

   }