如何更快地加载 MKMapView?

Posted

技术标签:

【中文标题】如何更快地加载 MKMapView?【英文标题】:How to Load MKMapView faster? 【发布时间】:2015-05-28 08:03:36 【问题描述】:

我正在构建一个包含MKMapView 的应用程序。用户第一次浏览此视图时,它需要一段时间才能加载,并且动画针掉落等内容也因此无法正常工作。如果我从模拟器选项中选择另一个位置,则该位置需要一点时间才能稳定。

有什么方法可以快速加载 MKMapView?可能在后台运行还是什么?我很困惑?你们怎么做才能更快地加载地图?

【问题讨论】:

您是否尝试过创建地图视图控制器并将其视图的alpha 设置为0.0?我从未尝试过完成您的任务,但似乎可行。您甚至可以在您的 VC 中实现 MKMapViewDelegate 方法,并通知呈现视图控制器您的地图已准备好显示(例如,通过对 - mapViewDidFinishLoadingMap: 做出反应)。希望这会有所帮助。 那么最初我将向用户展示什么? 取决于您的应用。如果地图是唯一的视图 - 使用带有闪屏的解决方案。 我在初始屏幕上显示了一个 tableview..and mapview 作为 tableview 中的 headerView.. 所以也许在加载完成后让它滑入? 【参考方案1】:

在加载的时候放一个闪屏,捕获加载完成的事件是委托方法mapViewDidFinishLoadingMap:

不要忘记将您的 ViewController(或其他实现对象)设置为 MKMapView 对象的委托。

【讨论】:

实际上它最初会加载但需要时间才能用动画显示当前位置? 你可以使用 CLLocationManager 来获取位置,它有一个委托方法 didUpdateToLocation:见这里:***.com/questions/11513259/… 我刚用过..但是获取当前位置的时间很慢...意味着 mapview 会停止 3-4 秒才能稳定 也许你可以在你的应用代理上获取位置并保存它。所以当你到达地图时它已经在那里了。

以上是关于如何更快地加载 MKMapView?的主要内容,如果未能解决你的问题,请参考以下文章

PHP 如何更快地执行这些检查/或更快地加载页面?

如何更快地加载多个网格

如何使用缓存使用 SfSafariView 或 WKWebView 更快地加载网站?

如何进行多线程以更快地将图像加载到 tableView

iOS:每次用户加载应用程序时如何刷新 MKMapView 用户位置

更快地加载firebase图像数据