根据我在这个SO问题(MKMapView的覆盖物上的触摸事件)中发现的内容,我实现了一种拦截MKPolygon上的轻击手势的方法。
在使用Xcode 4.6.3针对iOS 6构建的应用程序中,它运行良好。但是当我在iOS 7设备上尝试时,它停止工作了。
具体来说:
在使用Xcode 4.6.3针对iOS 6构建的应用程序中,它运行良好。但是当我在iOS 7设备上尝试时,它停止工作了。
具体来说:
CLLocationCoordinate2D coord = [neighborhoodMap_ convertPoint:point
toCoordinateFromView:neighborhoodMap_];
// We get view from MKMapView's viewForOverlay.
MKPolygonView *polygonView = (MKPolygonView*) view;
CGPoint polygonViewPoint = [polygonView pointForMapPoint:mapPoint];
BOOL mapCoordinateIsInPolygon = CGPathContainsPoint(polygonView.path,
NULL,
polygonViewPoint,
NO);
由于某种原因,对于MKPolygonView中给定的坐标,CGPathContainsPoint方法不再返回YES。不确定是否有人遇到过这个问题,但我将感激您提供的任何见解。
谢谢!