Apple Page Control示例代码使黑屏

时间:2019-04-22 16:33:40

标签: ios swift uiscrollview lazy-loading uiscrollviewdelegate

我已经下载了Apple的PageControl Sample Code,以尝试学习如何在用户滚动时创建延迟加载的页面。但是,当我滚动画面时,开箱即用的画面消失了,并且出现黑屏。如果代码中有错误,该发生吗?

page control black screen

1 个答案:

答案 0 :(得分: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的调用返回与该类型匹配。还要记住,一个懒惰的var称为变量,一旦设置就不会改变,就这一点而言更像是一个常量。有一些解决方法,但是已经在此处解决了... Re-initialize a lazy initialized variable in Swift