根據我在這個SO問題(Touch events on MKMapView's overlays)上發現的內容,我實現了一種在MKPolygon上攔截水龍頭手勢的方法。在iOS7的MKMapView中檢測MKPolygonView的水龍頭
它在使用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);
出於某種原因調用CGPathContainsPoint不再返回,即使是在給定座標是MKPolygonView內。不知道是否有人遇到了這個問題,但我希望您能得到任何見解。
謝謝!
事實證明,polygonView的路徑屬性爲NULL。這絕對是一個奇怪的bug .. – dfujiwara
絕對是一個錯誤,我有同樣的問題。用Apple記錄一張票。 – Dwill
是的,我已經提交了一個示例應用程序的蘋果的bug票。希望他們會修復它的iOS7 GA ..橫過我的手指。 – dfujiwara