Я создаю путь (MKPolyline) на основе позиции добавленных пользователем аннотаций. Я хочу разрешить пользователям изменять путь, перетаскивая контакты. В настоящее время я могу это сделать, но MKPolyline не обновляется до тех пор, пока булавка не будет сброшена.Получение координат MKAnnotation при перетаскивании
Я применил - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)annotationView didChangeDragState:(MKAnnotationViewDragState)newState fromOldState:(MKAnnotationViewDragState)oldState
для MKAnnotationViewDragStateDragging
, но он только предупреждает меня, что пользователь перетаскивает штырь и не замечает о новой позиции.
Как я могу получить текущую позицию аннотации, являющейся перетаскиванием, каждый раз, когда она изменяется? Я хочу получать уведомления о любых изменениях позиции при перетаскивании, чтобы иметь возможность обновлять MKPolyline, чтобы следить за штифтом, когда он перемещается, чтобы лучше отражать изменение пути.
Любые идеи? Благодаря!
Это хорошо работает - спасибо :) Я вижу проблему, хотя там, где ее касается .Moved: withEvent: постоянно не вызывается при первом перетаскивании, а иногда и после этого. Я не могу понять, что может быть причиной этого. Есть предположения? – StephenT
Использование touchhesMoved будет работать большую часть времени, однако я заметил, что когда я перетаскиваю определенные части моего пользовательского булавки (особенно верхнюю часть), touchsMoved не вызывается. Я исправил это, переопределив свойство центра. В Swift это просто: 'override var center: CGPoint {didSet {// code here}}' – JYeh