我只是一个相对较新的iPhone程序员,所以希望这是有道理的。
我在UITableView
中创建了storyboard
并且显示正确。我创建了两种不同类型的原型表视图单元格。一个是使用“Left Detail”样式显示文本的简单单元格,而另一个包含MKMapView
和工具栏。我创建了一个地图的单个实例,其余所有单元格都是简单的文本单元格。
我遇到的问题是,当最初显示表格视图时,包含地图的UITableViewCell
在屏幕外。当我向下滚动时,UI会在单元格加载时暂停。基于Instruments,似乎花费时间在[MKMapView initWithCoder]
,但我不知道在出列前加载原型单元的任何方法。
以前地图单元格是在首页上方,因此在我进行任何滚动之前已加载。现在我已经重新排列了一些东西,它正在加载,导致延迟。
有什么方法可以预加载包含UITableViewCell
的{{1}},或者将MKMapView
的一些加载放到后台?
答案 0 :(得分:2)
您可以预先加载MKMapView
视图实例,将其作为子视图添加到cellForRowAtIndexPath
方法中的单元格。这样,在显示单元格之前,地图视图有一些时间加载。
答案 1 :(得分:1)
其他方法是使用MKMapSnapshotter
,进行后台提取并缓存结果。请查看此答案https://stackoverflow.com/a/39479479/384288,也许这对某人有帮助。