【发布时间】:2018-11-17 13:58:12
【问题描述】:
在我的应用程序中,我有一个充满注释的 mapkit,当单击一个时,我希望一个新视图向上滑动,其中包含注释的详细信息。如果我错了,请纠正我,但我认为您需要创建一个自定义注释才能实现 didSelect() 方法。
问题是,默认情况下,弹出的自定义注释没有注释的名称,就像默认的 mapkit 注释那样,因为我一次有大约 20 个注释,用户有无法知道他们在选择什么。
关于如何在自定义注释下方添加带有注释名称的标题或标签的任何想法?我不想在注释上方弹出一个调用,因为我让视图向上滑动,填充了注释数据。
这是我所拥有的:
extension ViewController : MKMapViewDelegate {
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
if annotation is MKUserLocation { return nil }
var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: "pin") as? MKPinAnnotationView
if annotationView == nil {
annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "pin")
annotationView?.animatesDrop = true
annotationView?.canShowCallout = false
} else {
annotationView?.annotation = annotation
}
return annotationView
}
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
UIView.animate(withDuration: 0.2) {
// the view that will hold the annotations data
self.annotationInfoViewBottomConstraint.constant = 0
self.view.layoutIfNeeded()
}
}
}
如您所见,默认注释在下面有位置的名称,这是我想要的,但我希望它在“pin”下看起来自定义注释。
【问题讨论】:
-
很难说出您的实际问题是什么。您应该通过edit 明确您想要做什么、尝试了什么以及得到了什么结果,包括任何错误消息。
标签: swift mapkit mapkitannotation