ios – Swift – 更改注释图像不起作用

ios – Swift – 更改注释图像不起作用,第1张

概述我已经按照其他堆栈帖子和教程将我的注释图像更改为自定义图像,但它似乎不起作用.不会出现错误或运行时错误,只是注释图像不会改变. 顺便说一下,我在一行annotationView!.image = UIImage(名字:“RaceCarMan2png.png”)上设置一个断点,它显示该行被调用,但没有任何反应.我将衷心感谢您的帮助.谢谢. func mapView(mapView: MKMapVie 我已经按照其他堆栈帖子和教程将我的注释图像更改为自定义图像,但它似乎不起作用.不会出现错误或运行时错误,只是注释图像不会改变.

顺便说一下,我在一行annotationVIEw!.image = UIImage(名字:“RaceCarMan2png.png”)上设置一个断点,它显示该行被调用,但没有任何反应.我将衷心感谢您的帮助.谢谢.

func mapVIEw(mapVIEw: MKMapVIEw,vIEwForAnnotation annotation: MKAnnotation) -> MKAnnotationVIEw? {    if annotation is MKUserLocation {        return nil    }    let IDentifIEr = "MyCustomAnnotation"    var annotationVIEw = mapVIEw.dequeueReusableAnnotationVIEwWithIDentifIEr(IDentifIEr)    if annotationVIEw == nil {        annotationVIEw = MKPinAnnotationVIEw(annotation: annotation,reuseIDentifIEr: IDentifIEr)        annotationVIEw?.canShowCallout = true        annotationVIEw!.image = UIImage(named: "RaceCarMan2png.png")    } else {        annotationVIEw!.annotation = annotation    }    configureDetailVIEw(annotationVIEw!)    return annotationVIEw}func configureDetailVIEw(annotationVIEw: MKAnnotationVIEw) {        annotationVIEw.detailCalloutAccessoryVIEw = UIImageVIEw(image: UIImage(named: "url.jpg"))}
解决方法 问题是你正在使用MKPinAnnotationVIEw.如果您使用MKAnnotationVIEw,您将看到您的图像:

class VIEwController: UIVIEwController,MKMapVIEwDelegate {    @IBOutlet weak var mapVIEw: MKMapVIEw!    private func addAnnotation(coordinate coordinate: CLLocationCoordinate2D,Title: String,subTitle: String) {        let annotation = MKPointAnnotation()        annotation.coordinate = coordinate        annotation.Title = Title        annotation.subTitle = subTitle        mapVIEw.addAnnotation(annotation)    }    func mapVIEw(mapVIEw: MKMapVIEw,vIEwForAnnotation annotation: MKAnnotation) -> MKAnnotationVIEw? {        if annotation is MKUserLocation { return nil }        let IDentifIEr = "CustomAnnotation"        var annotationVIEw = mapVIEw.dequeueReusableAnnotationVIEwWithIDentifIEr(IDentifIEr)        if annotationVIEw == nil {            annotationVIEw = MKAnnotationVIEw(annotation: annotation,reuseIDentifIEr: IDentifIEr)            annotationVIEw!.canShowCallout = true            annotationVIEw!.image = UIImage(named: "star.png")!   // go ahead and use forced unwrapPing and you'll be notifIEd if it can't be found; alternatively,use `guard` statement to accomplish the same thing and show a custom error message        } else {            annotationVIEw!.annotation = annotation        }        return annotationVIEw    }    ...}

产量:

在过去(例如iOS 8),设置MKPinAnnotationVIEw的图像似乎工作正常,但在iOS 9.x中,似乎无论如何都使用pin.对于名为MKPinAnnotationVIEw的类而言,这并非完全不合理的行为,并且使用MKAnnotationVIEw可以避免此问题.

总结

以上是内存溢出为你收集整理的ios – Swift – 更改注释图像不起作用全部内容,希望文章能够帮你解决ios – Swift – 更改注释图像不起作用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1209460.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存