我有一个自定义的MKAnnotationView子类。它完全按照我想要的方式显示视图。在该视图中,我有一个按钮。我想要捕获按钮上的事件以执行操作。这个很好用。
但是,我不希望callout被取消或消失。基本上,触摸标注中的按钮将开始播放声音,但我希望保留注释,以便用户可以按stop (停止),而不必再次触摸地图别针以恢复注释。在另一种情况下,我希望按钮触摸在标注中显示更多细节,所以我绝对不想在这一点上忽略标注。
当用户选择标注或标注中的按钮时,如何防止标注消失?
发布于 2011-07-29 21:49:48
这可能不是最好的解决方案,但它肯定有效。首先,我尝试了很多东西,比如观察上下文之类的,但我从来没有经历过崩溃,而且看起来很麻烦。所以,这是我所做的:
我首先指定了保持警报可见的控制因素。在我的示例中,我创建了一个自定义注释视图,每当用户单击该自定义视图上的按钮时,我希望它保持可见,甚至可能更改内容。因此,我在自定义视图上设置了一个代理,这样我的map就可以知道什么时候发生了变化。在映射视图控制器中,我捕获了该消息,并将一个类成员变量设置为true,以表明我希望保留注释视图。
注意:此将在选择消息发生之前发生。
现在,在我的didDeselectAnnotation方法中,我检查了布尔值。如果我想让它保持可见,我选择不删除我的注释,重置布尔值,并手动重新选择注释动画,将设置为NO。这让注释视图“保持”可见--可能是作弊,但用户看不到区别。每当布尔值表示取消选择是ok时,我只需删除注释,一切都是正常的。
因此,工作流程如下:
显示方法触摸针
<
我希望这对其他人有帮助。我花了一段时间才弄明白这件事,所以我希望它能节省你的时间。
如果你找到更好的解决方案,请把它贴在这里!
发布于 2012-11-21 23:55:09
你可以通过使用hittest来抑制标注关闭,请检查下面的帖子。Detect tap on title of callout
https://stackoverflow.com/questions/6811366
复制相似问题