将图像分配给注释而不是图钉
assign image to annotation instead of pin
大家好,我正在尝试将注释上的图钉替换为自定义图片。
我的 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(named: "House") 中发现一个错误,它要求插入“,”,最终结果如下所示
annotationView.image = UIImage(named: "#imageLiteral(resourceName: ",House,")")
Xcode
将显示错误使用未解析的标识符 'House'
Swift 3 介绍Image Literals。只需写 "Imag".. 它就会打开带有 Image Literal 选项的弹出窗口。如下图所示:
通过选择"Image Literal"选项,它会弹出所有可用的资产图像,
Select 您要使用的网格图像。
更多详情,see this
此代码帮助我解决了我的问题
let pinImage = UIImage(named: "House.png")
annotationView.image = pinImage
但我现在遇到一个问题,我的地图不再居中
大家好,我正在尝试将注释上的图钉替换为自定义图片。
我的 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(named: "House") 中发现一个错误,它要求插入“,”,最终结果如下所示
annotationView.image = UIImage(named: "#imageLiteral(resourceName: ",House,")")
Xcode
将显示错误使用未解析的标识符 'House'
Swift 3 介绍Image Literals。只需写 "Imag".. 它就会打开带有 Image Literal 选项的弹出窗口。如下图所示:
通过选择"Image Literal"选项,它会弹出所有可用的资产图像,
Select 您要使用的网格图像。
更多详情,see this
此代码帮助我解决了我的问题
let pinImage = UIImage(named: "House.png")
annotationView.image = pinImage
但我现在遇到一个问题,我的地图不再居中