如何更快地加载 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?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用缓存使用 SfSafariView 或 WKWebView 更快地加载网站?