dequeueReusableAnnotationViewWithIdentifier有什么用?
What is the use of dequeueReusableAnnotationViewWithIdentifier?
我在许多 mapkit 示例中看到我们可以使用地图视图的 dequeueReusableAnnotationViewWithIdentifier
将可重用的注释视图出队,但是这个注释视图从何而来?它以前是以编程方式创建的吗?与每次创建它相比,它有什么意义?
dequeueReusableAnnotationViewWithIdentifier 没有创建新的 AnnotationView。
它正在回收。很像 UITableViewCell deQueue.
出于节省 RAM 的目的,超出地图可见边界的注释的 annotationViews 将重新用于可见注释。
dequeue 查找超出可见区域的注释视图。
如果找到它,它会抢救并使用它。您必须重新提供回收视图。
如果无法挽救旧视图,它会创建一个新视图并将其注册以使用 deQueue 进行回收。
假设您有 20 个注释附加到 mapview。
5 在屏幕上,15 在视线之外。
20个注解如无必要,不存在20个注解视图。
整个 20 个注释最多 7-8 个注释视图。
假设您以编程方式创建了第 21 个注释,并且它就在眼前。
现在八分之一的观点被盗了。 1 留作备份。
假设你创建了另外 2 个可见的视图,我从备份中查看,现在创建了 1 个视图。
这是为了优化资源使用。
我在许多 mapkit 示例中看到我们可以使用地图视图的 dequeueReusableAnnotationViewWithIdentifier
将可重用的注释视图出队,但是这个注释视图从何而来?它以前是以编程方式创建的吗?与每次创建它相比,它有什么意义?
dequeueReusableAnnotationViewWithIdentifier 没有创建新的 AnnotationView。 它正在回收。很像 UITableViewCell deQueue.
出于节省 RAM 的目的,超出地图可见边界的注释的 annotationViews 将重新用于可见注释。
dequeue 查找超出可见区域的注释视图。 如果找到它,它会抢救并使用它。您必须重新提供回收视图。
如果无法挽救旧视图,它会创建一个新视图并将其注册以使用 deQueue 进行回收。
假设您有 20 个注释附加到 mapview。 5 在屏幕上,15 在视线之外。 20个注解如无必要,不存在20个注解视图。 整个 20 个注释最多 7-8 个注释视图。
假设您以编程方式创建了第 21 个注释,并且它就在眼前。 现在八分之一的观点被盗了。 1 留作备份。
假设你创建了另外 2 个可见的视图,我从备份中查看,现在创建了 1 个视图。
这是为了优化资源使用。