gpt4 book ai didi

swift - 如何在一个 MapView 中使用不同的 View

转载 作者:行者123 更新时间:2023-11-30 11:21:43 25 4
gpt4 key购买 nike

如何在一个 MapView 中使用不同的 View 。我的意思是如果我使用

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

那么一个Mapview中的所有注释View将是相同的。我的意思是如何在一个 MapView 中设置不同的 View 样式(包括图像等)?

最佳答案

您可以使用不同的 View 。例如,

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
if annotation is MKUserLocation {
return nil
}

if ... {
// Marker annotation
let reuseId = "pin"
var pinView = mapView.dequeueReusableAnnotationView(withIdentifier: reuseId) as? MKMarkerAnnotationView
if pinView == nil {
pinView = MKMarkerAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
pinView?.canShowCallout = true
pinView?.isDraggable = true

let rightButton: AnyObject! = UIButton(type: UIButtonType.detailDisclosure)
pinView?.rightCalloutAccessoryView = rightButton as? UIView
}
else {
pinView?.annotation = annotation
}
return pinView
} else if ... {
// Image annotation
let reuseId = "image"
var pinView = mapView.dequeueReusableAnnotationView(withIdentifier: reuseId)
if pinView == nil {
pinView = MKAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
pinView?.canShowCallout = true
pinView?.image = UIImage(named: "Laugh")

let rightButton = UIButton(type: UIButtonType.detailDisclosure)
pinView?.rightCalloutAccessoryView = rightButton
}
else {
pinView?.annotation = annotation
}

return pinView
}
}

关于swift - 如何在一个 MapView 中使用不同的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51191008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com