Как сделать перетаскиваемую карту с центрированной аннотацией - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь сделать перетаскиваемую аннотацию.Но вместо того, чтобы сделать аннотацию перетаскиваемой, я хочу, чтобы mapView перемещался вокруг аннотации.Таким образом, аннотация будет оставаться в центре mapView все время, но когда пользователь закончит перетаскивать карту и нажимает кнопку Сохранить, тогда я могу получить координаты аннотации.Как я могу это сделать?Предположим, у меня уже есть аннотация на экране.

My ViewDidLoad

    mapView.delegate = self

    let anno = MKPointAnnotation()
    anno.coordinate = CLLocationCoordinate2D(latitude: 41.417110, longitude: -92.914788)

    mapView.addAnnotation(anno)

Мой вид для аннотации

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {

    guard annotation is MKPointAnnotation else { return nil }
    let identifier = "marker"
    var view: MKAnnotationView
    if let dequeuedView = mapView.dequeueReusableAnnotationView(withIdentifier: identifier)
        as? MKMarkerAnnotationView {
        dequeuedView.annotation = annotation
        view = dequeuedView
    } else {
        view = MKMarkerAnnotationView(annotation: annotation, reuseIdentifier: identifier)
        view.isDraggable = true
        view.canShowCallout = false
    }
    return view
}

1 Ответ

0 голосов
/ 17 октября 2018

Добавьте изображение маркера поверх карты, добавьте его в качестве подпредставления.Затем вы можете получить координаты центра, обычно используя mapView.centerCoordinate, когда пользователь прекращает прокрутку.

let markerImageView = UIImageView(image: UIImage(named: "Orange"))
markerImageView.center = mapView.center
mapView.addSubview(markerImageView)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...