mkmapview - MapKit在iOS9上未显示自定义注释图钉图像

标签 mkmapview mapkit mkannotation ios9 mkannotationview

我的代码在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 看起来像这样:
ios9 without images

最佳答案

代替创建 MKPinAnnotationView ,而创建普通的 MKAnnotationView

MKPinAnnotationView 子类倾向于忽略image属性,因为它被设计为仅显示标准的红色,绿色,紫色图钉(通过pinColor属性)。

当您切换到 MKAnnotationView 时,您也必须注释掉animatesDrop行,因为该属性特定于 MKPinAnnotationView

关于mkmapview - MapKit在iOS9上未显示自定义注释图钉图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32633432/

相关文章:

iphone - 在 MKMap View 中显示附近的餐馆

Swift:点击 map View 时转到另一个 View

iphone - MapKit 用户位置(蓝点和圆圈)将不会显示

iphone - 如何使用 MapKit 放置图钉?

objective-c - UITableViewCell 中的 MKMapView

ios - 防止 MKMapView 更改选择(干净地)

iphone - 无法将 MapKit 用户坐标转换为屏幕坐标

ios - MKMapView居中并放大

cocoa-touch - 如何在不使用 setCoordinate 的情况下更新注释?

ios - 如何让UIImage变圆