我正在构建一个包含大约65 MB数据的应用程序,主要是以图像的形式存储为类的实例。现在应用程序运行良好,除了一件事:加载包含所有信息的ViewController大约需要10秒钟。这是在应用程序打开或第一次加载到前台后加载页面时发生的。
这是代码的样子(除了AnatomyView类有很多很多实例):
class SectionViewController: UIViewController, UIScrollViewDelegate {
class AnatomyView {
var viewName: String = ""
var normalImage: UIImage = UIImage(named: "Logo.jpg")!
var markedImage: UIImage = UIImage(named: "Logo.jpg")!
var steps: [UIImage] = []
var attribution: String = ""
init(viewName: String, normalImage: UIImage, markedImage: UIImage, steps: [UIImage], attribution: String){
self.viewName = viewName
self.normalImage = normalImage
self.markedImage = markedImage
self.steps = steps
self.attribution = attribution
}
}
let lateralYShoulder = AnatomyView(
viewName: "Lateral Y",
normalImage: UIImage(named: "Lateral Y Normal Unmarked.jpg")!,
markedImage: UIImage(named: "Lateral Y Normal Marked.jpg")!,
steps: [UIImage(named: "Lateral Y Step 1.jpg")!, UIImage(named: "Lateral Y Step 2.jpg")!],
attribution: "Case courtesy of Mr Andrew Murphy\nRadiopaedia.org, rID: 48080"
)
减少加载时间的策略有哪些?有没有办法将数据存储在其他地方,然后只导入需要的东西?如此长的加载时间使应用程序完全无法使用。
答案 0 :(得分:0)
如果您使用UIScrollView显示加载时间很长的所有信息,则需要加载显示的信息,但如果您使用UIColllectionView或UITableView以网格方式划分信息,则内容会加载为用户滚动,时间下降了很多。
答案 1 :(得分:0)
我建议你看看CATiledLayer和下面的Apple例子:
来自说明:
“PhotoScroller”演示了如何使用嵌入式UIScrollViews和CATiledLayer创建丰富的用户体验,以便显示和分页可以单独平移和缩放的照片。 CATiledLayer用于提高使用高分辨率图像或大量照片进行分页,平移和缩放的性能。
https://developer.apple.com/library/content/samplecode/PhotoScroller/Introduction/Intro.html