是否可以阻止 MKMapView 加载磁贴,直到视图可见



是否可以阻止 MKMapView 加载磁贴直到视图可见?或者更确切地说是推迟它?

我有一个有点复杂的视图,用户可以在其中使用分段控件在列表视图、照片视图和地图视图之间切换。

默认模式为列表视图,因此照片视图和地图视图的hidden属性设置为 YES

但是,尽管被隐藏了,但我看到每次加载复杂的视图时MKMapView都在加载瓷砖:(它会导致非常明显的滞后(~900 ms),我在使用时间分析的工具中证实了这一点。

我尝试对MKMapView进行子类化并覆盖didAddSubviewwillMoveToSuperviewdidMoveToSuperviewwillMoveToWindowdidMoveToWindow,希望使用这些调用中的任何一个来捕捉地图视图真正可见的时刻。

我还尝试使用MKMapView委托的方法。不幸的是,它们也会在地图视图可见之前被调用。

你有什么建议?

按下分段控件之前,您只能不创建它。与其将其放在 IB 中,不如留一个空白区域,当控件切换时,检查 mapView 是否为 nil,如果是,请创建它,将其添加到视图中并按计划继续。

最新更新