IOS 上的 Mapkit 支持叠加层出列吗? (就像它做注释一样)

does Mapkit on IOS support dequeuing of overlays? (like it does annotations)

IOS 上的 Mapkit 是否支持叠加层出队? (就像它做注释一样)。如果是这样,实现这一目标的代码是什么?

背景:使用注释我相信你可以添加很多,让 MapKit 在需要时通过出列方法实例化视图。但是,如果我在全国有很多覆盖层,那同样的事情呢?我是否需要编写代码来检查我有哪些叠加层可见或不可见,然后自己实时实例化/删除它们?

Map Kit 不支持重用叠加层,就像它支持注释视图一样。原因之一肯定是这两个对象不相似。叠加层是表示地图上某个区域的模型对象,而注释视图是不时用于显示地图上注释位置的视图对象。重用视图对象的技术(而不是为每次使用创建单独的对象)是一种优化,在 UIKit 的其他几个地方使用,特别是 Table View Cells 和 Collection Views 的各种位。

视图重用模式是建立一些数据索引(table 索引路径、地图坐标),然后让委托提供适当的视图对象,以便在特定 index/location 进入视图时使用.当数据对象离开视线时,视图对象在队列中被回收。

注释类似于叠加层,MapKit 也不提供对它们的重用,这是有充分理由的:它们是正在显示的数据!

与注释视图类似的对象是覆盖渲染器,它(当然!)为覆盖提供渲染。我假设这些未被重用的原因是因为它们不是视图系统对象并且可能更轻量级,因此重用几乎没有好处。我们发现这一点的证据是,直到 iOS 7.0,MapView 委托 确实 为叠加层提供了一个视图对象,并且它被渲染器概念所取代。

希望对您有所帮助。

这给您带来了什么问题?