Apple Page Control示例代码为黑屏

问题描述 投票:0回答:1

我已经下载了Apple的PageControl Sample Code,试图学习如何在用户滚动时创建延迟加载的页面。然而,当我滚动图片时,开箱即用,我得到一个黑屏。应该发生的是代码中是否存在错误。

page control black screen

ios swift uiscrollview lazy-loading uiscrollviewdelegate
1个回答
0
投票

在运行应用程序之前编辑了代码吗?

通过在viewDidLayoutSubviews方法调用中注释掉_ = setupInitialPages调用,我能够重现您的问题。取消评论,该应用程序工作正常。

enter image description here

延迟加载变量要记住的事情是它们在被调用之前不会被填充,这是延迟加载的全部要点。如果没有对延迟加载变量的引用,它将不会被实例化,并将导致您在测试中看到的内容。

延迟加载的var的语法是:

lazy var someVarName: the variable type e.g. Int, UIIMage, String... whatever = { // Code in here to populate the variable return variable with the declared type }()

您需要确保对lazy var的调用返回与类型匹配。还要记住,一个懒惰变量虽然被称为变量,但一旦设置不变,在这方面更像是常量。有一些工作,但他们已经在这里解决... Re-initialize a lazy initialized variable in Swift

© www.soinside.com 2019 - 2024. All rights reserved.