将图像分配给注释而不是引脚

时间:2016-11-30 09:45:53

标签: ios swift3 mkpinannotationview

嗨大家我试图将我的注释上的图钉替换为自定义图像。

我已经在我的image.cassette列表中显示了1X 2X 3X等图像但是当我尝试调用该图像时,我的代码中出现错误Xcode尝试修复我的语法但是最终将其作为错误抛出

下面列出的代码覆盖了func

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

    guard !(annotation is MKUserLocation) else {
        return nil
    }


    let annotationIdentifier = "AnnotationIdentifier"

    var annotationView: MKAnnotationView?
    if let dequeuedAnnotationView =   mapView.dequeueReusableAnnotationView(withIdentifier: annotationIdentifier) {
        annotationView = dequeuedAnnotationView
        annotationView?.annotation = annotation
    }
    else {
        annotationView = MKAnnotationView(annotation: annotation, reuseIdentifier: annotationIdentifier)
        annotationView?.rightCalloutAccessoryView = UIButton(type: .detailDisclosure)
    }

    if let annotationView = annotationView {

        annotationView.canShowCallout = true
        annotationView.image = UIImage(named: "House")
    }

    return annotationView
}

现在Xcode在代码annotationView.image = UIImage(名称:" House")中发现错误,它要求插入","最终结果如下所示

annotationView.image = UIImage(named: "#imageLiteral(resourceName: ",House,")")
然后,

Xcode将显示错误使用未解析的标识符' House'

2 个答案:

答案 0 :(得分:0)

Swift 3介绍了Image Literals。只需编写" Imag" ..然后打开带有Image Literal选项的弹出窗口。如下图:

enter image description here

选择" Image Literal"选项,它将弹出所有可用的资产图像,

enter image description here

从网格中选择要使用的图像。

了解更多详情,see this

答案 1 :(得分:0)

此代码帮助我解决了我的问题

let pinImage = UIImage(named: "House.png")
annotationView.image = pinImage

但我现在有一个问题,我的地图不再居中