MKMapView / MKOverlay - позволяет пользователю определять координаты наложения - PullRequest
0 голосов
/ 09 ноября 2010

Я пытаюсь разрешить пользователю определять границы для наложения.Кажется, это должно быть просто;но я даже не могу узнать, как узнать, когда пользователь касается карты.Я бы подумал, что UIMapViewDelegate будет иметь методы для реагирования на взаимодействия пользователя, но это не так.В приложении Google Maps он сбрасывает булавку, когда вы держитесь на месте;Я предполагаю, что это будет первым шагом к тому, чтобы пользователь определил оверлей.

Похоже, что UILongPressGestureRecognizer предоставит то, что я хочу;но не совсем понимаю, как добавить GestureRecognizer в MapView.Я прочитал документацию MKMapView и UIGestureRecognizer;что мне не хватает?Спасибо.

1 Ответ

1 голос
/ 09 ноября 2010

Любой UIView поддерживает добавление распознавателя жестов с помощью метода -addGestureRecognizer:.Однако это может быть не лучшим подходом: если вы хотите повторить поведение карт, вы можете использовать MKPinAnnotationView со свойством draggable, установленным на YES, а затем обновить границы наложения, чтобы они соответствовали аннотацииположение, когда заканчивается перетаскивание (т. е. когда представление карты вызывает метод делегата -mapView:annotationView:didChangeDragState:fromOldState:).Обратите внимание, что любой класс аннотаций, который вы используете, должен реализовывать метод -setCoordinate:, как определено в протоколе MKAnnotation, для перетаскивания выводов в работу.

...