延迟显示 UIMapView 直到地图在 Swift 中完全加载

Posted

技术标签:

【中文标题】延迟显示 UIMapView 直到地图在 Swift 中完全加载【英文标题】:delay showing UIMapView until map fully loaded in Swift 【发布时间】:2015-06-08 16:49:22 【问题描述】:

在我的故事板上,我设置了一个计时器(每 0.01 秒更新一次)和一个 UIMapView,它在加载视图控制器时显示用户的位置。但是,当此屏幕加载时,计时器会延迟一段时间,直到地图完全加载。我认为这是因为地图的加载是在主线程上执行的阻塞函数。

有没有办法在后台加载地图并在完全加载后显示它,同时仍然保持计时器运行?

【问题讨论】:

【参考方案1】:

可能不会。地图视图是视图对象,视图对象不是线程安全的。

请注意,Apple 在 NSTimer 上的文档说:

定时器不是实时机制;它仅在其中一个时触发 已添加计时器的运行循环模式正在运行并且能够 检查计时器的触发时间是否已过。由于各种 典型的运行循环管理的输入源,有效分辨率 计时器的时间间隔限制在 50-100 左右 毫秒。

50 毫秒是 0.02 秒。 100 毫秒是 0.04。因此,您不太可能获得所需的准确性。

【讨论】:

啊,有道理。谢谢。

以上是关于延迟显示 UIMapView 直到地图在 Swift 中完全加载的主要内容,如果未能解决你的问题,请参考以下文章

React-Native (iOS) 中的谷歌地图

延迟应用,直到用户允许或禁止当前位置

在 UIMapView 中放置图钉和图钉颜色失败

延迟显示页面,直到所有内容都加载完毕

延迟淡入动作直到动画动作发生

核心数据:延迟调用 endUpdates 直到 viewWillAppear