【发布时间】:2026-01-27 00:50:02
【问题描述】:
我遇到了一种情况,我在 mapview 上有一些自定义注释。选择这些注释后,我通过
将图像更改为选定状态didSelectAnnotationView
调用 [view setImage] 的方法,我还显示了一个标注气泡。标注有一个附件视图,点击时会添加一个新的子视图,其中包含更多信息。所有这一切都很好,除了当我点击标注附件视图时,我希望标注消失,但选择的图像状态保持不变。目前我知道如何解除标注的唯一方法是通过
didDeselectAnnotationView
不过,这也是我将图像状态设置为默认未选中图像的地方。
有谁知道是否可以只关闭标注但在我的注释上保留选定状态?
我已经通过在添加 detailView 时设置一个布尔值来决定是否删除“活动”图像来完成这项工作。但是,当我选择一个新注释时,它会变得很棘手,因为我最终会得到多个显示所选状态图像的注释。我尝试遍历所有注释并将它们的图像设置为“关闭”状态,但这似乎不起作用,我尝试设置对当前选定注释的引用并更改图像,但它再次没有没用。
示例流程:
- 用户选择了一个图钉
- didSelectAnnotationView 被调用
- 图钉图片更改为“活动”并显示标注
- 用户在标注中点击附件视图。
- BOOLEAN popOverShowing 设置为 YES
- didDeselectAnnotationView 被调用。由于 popOverShowing 为 YES,图像不会更改为关闭状态,但标注会消失
- 用户点击新注释
- Popover 消失,popOverShowing 设置为 NO
- 新注释设置为“活动”图像
- 所有其他注释应该重置为关闭图像(这似乎不会发生)
【问题讨论】:
标签: ios mkmapview mapkit mkannotation