Gre*_*reg 6 overlay mapkit mkmapview mkannotation mkoverlay
IIP上的Mapkit是否支持覆盖的出列?(就像它注释一样).如果是这样,实现这一目标的代码是什么?
背景:使用注释我相信你可以添加许多,让MapKit通过出列方法在需要时实例化视图.如果我在全国各地有很多人,那么叠加层会怎样?我是否需要编写代码来检查我有哪些叠加是可见的,然后实时实例化/删除它们?
小智 3
Map Kit 不支持重复使用叠加层,就像支持注释视图那样。造成这种情况的原因之一肯定是这两个对象不相似。叠加层是表示地图上某个区域的模型对象,而注释视图是不时用于显示地图上注释位置的视图对象。重用视图对象的技术(而不是为每次使用创建单独的视图对象)是一种优化,在 UIKit 中的其他几个地方使用,尤其是表视图单元格和集合视图的各种位。
视图重用模式是建立一些数据索引(表索引路径、地图坐标),然后让委托提供适当的视图对象,以便在特定索引/位置进入视图时使用。当数据对象消失时,视图对象将在队列中回收。
注释类似于覆盖层,MapKit 也不为它们提供重用,并且有充分的理由:它们是正在显示的数据!
与注释视图类似的对象是覆盖渲染器,它(当然!)为覆盖提供渲染。我认为这些不被重用的原因是因为它们不是视图系统对象并且可能更轻量级,因此重用几乎没有什么好处。我们在以下事实中找到了证据:直到 iOS 7.0,MapView 委托确实为覆盖提供了一个视图对象,并且它被渲染器概念所取代。
我希望这有帮助。
这给您带来了什么问题?
| 归档时间: |
|
| 查看次数: |
286 次 |
| 最近记录: |