【发布时间】:2015-06-28 21:19:18
【问题描述】:
如何使用 Swift 中的 MapKit 让用户在地图中将注释从一个位置拖到另一个位置?当我的地图视图委托创建注释视图时,我已将注释视图设置为可拖动,如下所示:
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
var v : MKAnnotationView! = nil
if annotation is MyAnnotation {
let ident = "bike"
v = mapView.dequeueReusableAnnotationView(withIdentifier:ident)
if v == nil {
v = MyAnnotationView(annotation:annotation, reuseIdentifier:ident)
}
v.annotation = annotation
v.isDraggable = true
}
return v
}
结果是用户可以某种拖动注释 - 但只能拖动一次。之后,注释变得无法拖动,更糟糕的是,注释现在不再“属于”地图 - 当地图滚动/平移时,注释保持不动,而不是随着地图滚动/平移。我做错了什么?
【问题讨论】:
标签: ios swift mapkit draggable mkannotationview