如何在MKOverlay或MKPolyline视图上检测触摸事件?我已经在MKPolylineView上尝试了this和添加tapgesture,但没有成功。
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
MKPolyline *mapPoly = (MKPolyline *)overlay;
MKPolylineView *_ucPolyView = [[MKPolylineView alloc] initWithPolyline:mapPoly];
_ucPolyView.strokeColor = [UIColor redColor];
[_ucPolyView setUserInteractionEnabled:YES];
UITapGestureRecognizer *polylineTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(polylineTapped:)];
polylineTap.numberOfTapsRequired = 1;
[_ucPolyView addGestureRecognizer:polylineTap];
}
-(void)polylineTapped:(UITapGestureRecognizer *)tapGesture
{
NSLog(@"Polyline is %@",tapGesture.view);
}但是polylineTapped方法并没有被解雇。所有我想要获得的是显示一个弹出式视图,显示多段线的详细信息,无论何时用户点击该多段线。
发布于 2013-03-17 06:01:17
我也遇到了同样的问题,并得出结论: MKMapView吃掉了所有会传播到子视图(如MKOverlayView )的事件。我认为MKMapView需要完全控制触摸事件,才能进行收缩和缩放等操作。
发布于 2013-05-09 21:07:06
即使命中超出边界,也必须修改视图hitTest以检查其子对象。
https://stackoverflow.com/questions/15454683
复制相似问题