ios mapview。关闭标注但保持选择注释

时间:2014-02-05 13:58:58

标签: ios mkmapview mapkit mkannotation

我遇到过mapview上有一些自定义注释的情况。选择这些注释后,我通过

将图像更改为选定状态
didSelectAnnotationView 

调用[view setImage]的方法,我也显示了一个标注气泡。标注有一个附件视图,在点击时添加一个新的子视图,其中包含更多信息。所有这一切都很好,除了当我点击标注附件视图时,我希望标注消失,但选定的图像状态保持不变。目前,我知道如何解除标注的唯一方法是通过

 didDeselectAnnotationView

然而,这也是我将图像状态设置为默认的未选择图像的地方。

是否有人知道是否可以仅解除标注但是在我的注释中保留选定状态?

当添加detailView以决定是否删除“活动”图像时,我通过设置布尔值来实现此功能。然而,当我选择一个新的注释时,它变得棘手,因为我最终得到了显示所选状态图像的多个注释。我已经尝试循环遍历所有注释并将其图像设置为“关闭”状态,但这似乎不起作用,我尝试设置对当前所选注释的引用并更改其上的图像,但它再次没有没事。

示例流程:

  • 用户选择一个图钉
  • didSelectAnnotationView被称为
  • 将图像更改为“活动”并显示标注
  • 用户点击标注中的附件视图。
  • BOOLEAN popOverShowing设置为YES
  • didDeselectAnnotationView被调用。由于popOverShowing为YES,因此图像不会更改为关闭状态,但标注会消失
  • 用户点击新注释
  • Popover消失,popOverShowing设置为NO
  • 新注释设置为“活动”图像
  • 所有其他注释应该重置为关闭图像(这似乎不会发生)

1 个答案:

答案 0 :(得分:0)

保持previousPin的引用在didSelectAnnotationView中将其设置为off,除非是nil。 然后将新选择的引脚设置为previousPin。希望它有所帮助。