我试图将一组针脚的颜色更改为蓝色,另一组针脚保持红色。我在这里跟着一个问题,把我带到了引脚确实改变颜色的地步。但我的当前位置也变成了一个引脚。此外,引脚也会从新徽标转变为旧徽标(实际的图钉图像)。是否有一种方法可以使引脚像新徽标/图像一样保留,并使我当前的位置显示为正常,即蓝色脉冲点。以及将一组引脚改为蓝色而其余引脚保持红色?
请帮忙! 以下是我的代码:
class MyPointAnnotation : MKPointAnnotation {
var pinTintColor: UIColor?
}
class ViewController: UIViewController, MKMapViewDelegate {
@IBOutlet var map: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
map.delegate = self
let anx = MyPointAnnotation()
anx.coordinate = CLLocationCoordinate2D(latitude: -36.56795, longitude: 176.56432)
anx.pinTintColor = .red
let any = MyPointAnnotation()
any.coordinate = CLLocationCoordinate2D(latitude: -36.54322, longitude: 176.43221)
any.pinTintColor = .blue
map.addAnnotation(anx)
map.addAnnotation(any)
}
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
var annotationView = mapView.dequeueReusableAnnotationView(withIdentifier: "myAnnotation") as? MKPinAnnotationView
if annotationView == nil {
annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "myAnnotation")
} else {
annotationView?.annotation = annotation
}
if let annotation = annotation as? MyPointAnnotation {
annotationView?.pinTintColor = annotation.pinTintColor
}
return annotationView
}
}
答案 0 :(得分:0)
但我的当前位置也变成了一个引脚。
在mapView:viewFor...
方法中添加以下代码:
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
if annotation is MKUserLocation {
return nil
}