【问题标题】:Is it better to remove MKAnnotations or not?删除 MKAnnotations 是否更好?
【发布时间】:2011-02-04 14:30:27
【问题描述】:

在内存管理、电池寿命和处理器使用方面,从 MKMapView 中删除当前不可见的 MKAnnotations 是否更好?

我说的是大量注释(比如约 1000 个),在任何给定时间在当前区域中只有大约 20 个可见。我应该让 MapKit 完成隐藏图钉的工作,还是应该自己根据可见区域处理添加/删除注释?

【问题讨论】:

    标签: ios iphone cocoa-touch mapkit mkannotation


    【解决方案1】:

    屏幕外的注释不会导致大量内存使用。 MKAnnotation 设计得非常轻巧,您应该尽量保持它们的小。内存猪是关联的视图(MKAnnotationView)。如果您有超过几百个可见,它将导致速度减慢和大量内存使用,并可能在旧设备上崩溃。 1000 会减慢任何设备的速度,但可能不会使其崩溃。

    总而言之,屏幕外的注释并不重要。当屏幕上有太多时,问题就会出现。为此,您必须删除注释以获得更好的性能。您如何决定删除和替换注释是一个更加困难的问题。

    【讨论】:

    • 谢谢你,内文!谈论删除和替换注释 - 我正在研究聚类过程,这就是我问这个问题的原因......我应该如何处理屏幕外分组标记?现在我认为在不删除的情况下取消组合就可以了:)
    • 如果分组时间不会太长,我会将它们全部分组(即使是屏幕外的)。这样您就不必处理如何处理被屏幕边缘截断的组。这也意味着您不必在地图移动时创建更多组。
    【解决方案2】:

    我会确保同时显示不超过 100 个注释。当您让 MKMapView 处理它时,如何防止用户缩小到整个世界导致 mapView 显示所有 1000 个注释?

    【讨论】:

    • 这就是我实际上正在解决的问题,尝试像在原生照片应用程序中一样对缩小的注释进行分组:) 实际上,我已经可以用漂亮的动画对它们进行分组和取消分组,但我考虑如何处理屏幕外分组注释...
    • @WASD42:很有趣。只是好奇:您使用的是什么分组算法?
    猜你喜欢
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 2012-01-09
    • 2018-07-13
    • 1970-01-01
    • 2019-06-05
    • 2017-10-05
    相关资源
    最近更新 更多