快速加载UITableViewCell中的MKMapView

时间:2014-03-14 05:46:34

标签: ios iphone uitableview mkmapview

我只是一个相对较新的iPhone程序员,所以希望这是有道理的。

我在UITableView中创建了storyboard并且显示正确。我创建了两种不同类型的原型表视图单元格。一个是使用“Left Detail”样式显示文本的简单单元格,而另一个包含MKMapView和工具栏。我创建了一个地图的单个实例,其余所有单元格都是简单的文本单元格。

我遇到的问题是,当最初显示表格视图时,包含地图的UITableViewCell在屏幕外。当我向下滚动时,UI会在单元格加载时暂停。基于Instruments,似乎花费时间在[MKMapView initWithCoder],但我不知道在出列前加载原型单元的任何方法。

以前地图单元格是在首页上方,因此在我进行任何滚动之前已加载。现在我已经重新排列了一些东西,它正在加载,导致延迟。

有什么方法可以预加载包含UITableViewCell的{​​{1}},或者将MKMapView的一些加载放到后台?

2 个答案:

答案 0 :(得分:2)

您可以预先加载MKMapView视图实例,将其作为子视图添加到cellForRowAtIndexPath方法中的单元格。这样,在显示单元格之前,地图视图有一些时间加载。

答案 1 :(得分:1)

其他方法是使用MKMapSnapshotter,进行后台提取并缓存结果。请查看此答案https://stackoverflow.com/a/39479479/384288,也许这对某人有帮助。