我的代码在iOS 7到8上运行良好。昨天进行了更新,我的图钉上的自定义图像已替换为标准的图钉图像。
有什么建议?
我的代码:
extension ViewController: MKMapViewDelegate {
func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -> MKAnnotationView! {
if annotation is MKUserLocation {
return nil
}
let reuseId = String(stringInterpolationSegment: annotation.coordinate.longitude)
var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) as? MKPinAnnotationView
if pinView == nil {
pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
pinView!.canShowCallout = true
pinView!.image = getRightImage(annotation.title!!)
}
let button = UIButton(type: UIButtonType.DetailDisclosure)
pinView?.rightCalloutAccessoryView = button
return pinView
}
}
获取图像的函数根据名称返回
UIImage
:func getRightImage (shopName:String)-> UIImage{
var correctImage = UIImage()
switch shopName
{
case "Kaisers":
correctImage = UIImage(named: "Kaisers.jpg")!
default:
correctImage = UIImage(named: "sopiconsmall.png")!
}
return correctImage
}
没有 map 看起来像这样:
最佳答案
代替创建 MKPinAnnotationView
,而创建普通的 MKAnnotationView
。
MKPinAnnotationView
子类倾向于忽略image属性,因为它被设计为仅显示标准的红色,绿色,紫色图钉(通过pinColor属性)。
当您切换到 MKAnnotationView
时,您也必须注释掉animatesDrop行,因为该属性特定于 MKPinAnnotationView
。
关于mkmapview - MapKit在iOS9上未显示自定义注释图钉图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32633432/