Основываясь на том, что я нашел в этом вопросе SO (Touch events on MKMapView's overlays), я реализовал способ перехватить жестов tap на MKPolygon.Обнаружение касания MKPolygonView в MKMapView на iOS7
Он отлично работал в нашем приложении, которое было построено с использованием 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 больше не возвращает YES даже заданные координаты находится в пределах MKPolygonView. Не уверен, что кто-то попал в эту проблему, но я был бы признателен за любые идеи, которые у вас могут быть.
Спасибо!
Оказывается, что путь свойство polygonView является NULL. Это определенно странная ошибка. – dfujiwara
Определенно ошибка, у меня такая же проблема. Зарегистрируйте билет у Apple. – Dwill
Да, я подал ошибку в Apple с образцом приложения. Надеюсь, что они исправит это для iOS7 GA .., пересекая мои пальцы. – dfujiwara