我在网上搜索了一下,发现了一些关于如何做我想做的事情的想法,但我仍然想知道你认为我应该做什么。
这是上下文:
我正在为 iOS 5 开发一个应用程序。我使用 MapKit 显示地图,并添加了大约 5000 个注释 - 是的,这似乎很多,但别担心,我使用集群库 :)。为了不每次用户打开地图时都加载它们,我在我的 appDelegate 中创建它们(我创建了一个注释数组,并[_mapView addAnnotations:[appDelegate.annotationsToAdd allObjects]];
在我打开地图时调用)。创建数组大约需要 10 秒annotationsToAdd
,所以我认为这个解决方案运行良好(您必须等待这 10 秒才能被授权打开地图,但您只需等待一次,在应用程序启动时) . 在每个注释中,我都有一个指向对象的“链接”,该对象包含一个值数组(15 个浮点数)。现在,当我创建注释时,该subtitle
方法会返回其中一个值。
在我的地图的 ViewController 中,我有 2 个分段控件。第一个有 3 个段,第二个有 5 个段,这给出了 15 种组合 - 是的,这与我的注释中的对象数组具有相同数量的值:)。
所以你可能已经看到我的问题来了,我想更新我地图上每个注释的副标题(即使是集群中的那些,因为集群根据它持有的图钉给出平均值)。我还想要的是根据注释字幕的值更新 annotationView 的颜色/图像。
我可能错了,但根据我的研究,我知道您必须删除所有注释,然后重新创建它们才能做到这一点。你明白这不是我的选择。我不能让用户每次更改其中一个控件的值时等待 10 秒。
我在 KVO 上看到了一篇文章:这可能是一个可行的解决方案吗?
我不太了解 NSNotification,但我应该使用它们吗?
我非常感谢您的帮助,我将更加感谢详细的回答,向我展示在我显然不常见的情况下要遵循的步骤。
提前致谢。