嗨大家我试图将我的注释上的图钉替换为自定义图像。
我已经在我的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'
答案 0 :(得分:0)
Swift 3介绍了Image Literals。只需编写" Imag" ..然后打开带有Image Literal选项的弹出窗口。如下图:
选择" Image Literal"选项,它将弹出所有可用的资产图像,
从网格中选择要使用的图像。
了解更多详情,see this
答案 1 :(得分:0)
此代码帮助我解决了我的问题
let pinImage = UIImage(named: "House.png")
annotationView.image = pinImage
但我现在有一个问题,我的地图不再居中