【问题标题】:Swift cannot assign subtitle in MKAnnotationSwift 无法在 MKAnnotation 中分配字幕
【发布时间】:2015-05-06 20:27:39
【问题描述】:

我正在尝试以编程方式更新 MKAnnotation 中的字幕。以下代码行产生cannot assign subtitle in annotation 错误:

let annotation: MKAnnotation = mapView.annotations[0] as! MKAnnotation
annotation.subtitle = nil

谁能帮助我在地图中显示 MKAnnotation 后更新字幕的方向?

【问题讨论】:

    标签: ios swift mkmapview mkannotation


    【解决方案1】:

    MKAnnotation 是一个协议。在该协议中,subtitle 是只读的。这意味着它无法设置。

    因此,由于您已将此注释转换为 MKAnnotation,因此无法设置 subtitle

    如果你知道注释真正是什么class那么你可以转换成那个class,大概它会有一个subtitle,它是读/写的,所以你可以设置它。例如,它可能是一个 MKPointAnnotation,或者您可能有自己的自定义注释类。然后你就可以投射到那个,现在你可以设置subtitle

    【讨论】:

    • 我创建了自己的自定义注释类,当我尝试更新字幕时,它不会在地图内的注释上更新。但是,如果我在更改前后打印字幕,它似乎可以正确更新。是否需要调用来更新地图中的注释,还是应该自动处理?
    • 我认为您无法展示更改。只需删除注释并将其替换为具有您想要的字幕的注释(但与您删除的标题和坐标相同)。
    • 我认为有一个问题是标注视图没有检测到更改,所以它没有显示它。我见过像这样的 hacky 变通方法:stackoverflow.com/a/3944235/341994 但我真的不推荐这种事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多