在iOS7中显示动态MKAnnotationViews的最有效方法

问题描述:

我试图在MKMapView上显示很多自定义和动态的圆圈(一次最多可查看100个),这些圆圈的大小,颜色和不透明度会根据传递的数据而变化到MKAnnotationView在iOS7中显示动态MKAnnotationViews的最有效方法

我现在有自定义的MKAnnotationMKAnnotationView类,我一直在探索许多不同的方式来动态显示这些类,但我不确定哪一个会提供最佳的用户体验(无论是在图形和速度方面)。

下面是我目前已经探索了方法(我相信还有更多的,我没有研究)和我应该去什么路径下(和任何代码帮助)的任何建议,将不胜感激:

1 - 缩放圆形的单个.png图像图像,并简单缩放图像frame并根据需要调整图像tintcolor

2 - 使用drawrect每次动态绘制一个圆。

3 - 使用layer.cornerradius来创建一个圆的ImageView我颜色需要

更新 - 这是这似乎创造最佳的边缘(使用“layer.cornerradius”选项),我只是不知道该代码如果它将成为同时制作数百个圈子的最佳选择。

CGRect myFrame = self.frame; 
myFrame.size.width = 100; 
myFrame.size.height = 100; 
self.frame = myFrame; 
self.layer.cornerRadius = self.frame.size.width/2; 
self.clipsToBounds = YES; 
[self setBackgroundColor:[UIColor colorWithHue:1 saturation:1 brightness:1 alpha:.5]]; 
+0

只有知道什么更高效或更低效率的方法是编写应用程序并运行它并使用Instruments。否则,不要过早优化。 – matt

+0

@matt非常真实和非常好的建议......只是想看看是否有人已经完成了这条路径 –

您可以使用所有MKannoation的聚类并根据缩放级别和位置显示它。

它可能不完全一样你想要的,但你可以得到一些有效的方式显示多个mkannotation视图具有最佳的用户体验。

你可以从下面的链接

https://github.com/yinkou/OCMapView

获得集群的示例代码希望它可以帮助你。

谢谢。

+0

我已经看过那里,并在某些缩放级别,我会做一些聚合(或集群),但将要显示众多即使我最终聚集在一起,也可以在地图上同时点。感谢您传递链接...对于那些正在寻找集群的另一个项目,在github中查看这里:https://github.com/choefele/CCHMapClusterController –