ios - 如何最小化包含大量图像的 Swift 页面的加载时间?

标签 ios swift

我正在构建一个包含总共约 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"
    )

减少加载时间的策略有哪些?有没有办法将数据存储在其他地方,然后只导入需要的数据?如此长的加载时间会使该应用完全无法使用。

编辑:图像在应用程序中的显示方式如下。 ScrollView 中一次最多有 8-10 张图像,并排排列。

最佳答案

您需要如图所示加载信息,如果您使用 UIScrollView 显示所有信息,加载时间会很长,但如果您使用 UICollectionView 或 UITableView 以网格方式划分信息,则内容加载为用户滚动,时间下降了很多。

关于ios - 如何最小化包含大量图像的 Swift 页面的加载时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48241495/

相关文章:

ios - 找到 `Firebase/Auth` 依赖项,但它们需要更高的最低部署目标

swift - 类型 GameScene 不符合协议(protocol) "SKPaymentTransactionObserver"

ios - Swift 中的函数式图形

iphone - iOS 5 中的 iPad 方向问题

ios - 在设备上运行时不出现 SKEmitterNode

ios - 如何从我的 View Controller 类访问AppDelegate类中声明的对象?

iphone - MPMoviePlayerViewController 不播放下载的文件

ios - Swift 中的 enumerateSubstringsInRange

ios - 如何为 ios 拍摄 AGSMapView 的快照?

iOS 10 自定义导航栏高度