如何制作带有居中注释的可拖动地图

时间:2018-10-17 04:51:34

标签: ios swift mapkit

我正在尝试进行可拖动的注释。但是,我希望mapView在注释周围移动,而不是使注释可拖动。因此,注释将始终保持在mapView的中心,但是当用户完成拖动地图并单击“保存”后,我便可以获取注释坐标。 我该怎么做? 假设我已经在屏幕上有注释。

我的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 :(得分:0)

在地图顶部添加标记的图像,并将其添加为子视图。然后,当用户停止滚动时,通常可以使用mapView.centerCoordinate获取中心坐标。

let markerImageView = UIImageView(image: UIImage(named: "Orange"))
markerImageView.center = mapView.center
mapView.addSubview(markerImageView)