在MKCircleView上接收触摸事件

时间:2012-11-28 22:58:10

标签: mkmapview mkoverlay touch-event

我正在尝试编写一个应用程序,用户可以使用多个叠加层(所有相同类型)单击地图上的MKCircleView叠加层。根据用户点击的特定消息应显示的覆盖区。

我的第一种方法是在mapView中添加一个由MapView提供的UITapGestureRecognizer:viewForOverlay:但是它没有用。

然后我将MKCircleView子类化并实现了以下方法:

//subclassed to handle event when touches are received
- (void) actionWhenClicked {
    UIAlertView *a =[[UIAlertView alloc] initWithTitle:@"It worked!"
                                               message:@"yeah"
                                              delegate:nil
                                     cancelButtonTitle:@"OK"
                                     otherButtonTitles: nil];
    [a show];
}

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [super touchesBegan:touches withEvent:event];
    [self actionWhenClicked];

}

- (void) touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
    [super touchesCancelled:touches withEvent:event];
    [self actionWhenClicked];

}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    [super touchesEnded:touches withEvent:event];
    [self actionWhenClicked];

}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    [super touchesMoved:touches withEvent:event];
    [self actionWhenClicked];

}

地图上的每个叠加层都是上述子类的一个实例,因此在触摸时应该响应。但这些方法从未被调用过。我在UIView上尝试了相同的方法。但是,它在带有叠加层的地图上不起作用。

有什么想法吗?

0 个答案:

没有答案