我已经下载了Apple的PageControl Sample Code尝试学习如何在用户滚动时创建延迟加载的页面。然而,当我滚动图片时,开箱即用的图片就会消失,并且出现黑屏。代码中是否存在错误是否应该发生这种情况?
最佳答案
您在运行应用程序之前编辑过代码吗?
我能够通过注释掉 viewDidLayoutSubviews 方法调用中的 _ = setupInitialPages
调用来重现您的问题。取消注释,该应用程序运行良好。
使用延迟加载变量要记住的是,它们在被调用之前不会被填充,这就是延迟加载的全部意义。如果没有对延迟加载变量的引用,它将不会被实例化,并且将导致您在测试中看到的结果。
延迟加载变量的语法是:
lazy var someVarName:变量类型,例如Int、UIIMage、String...随便 = {
//此处的代码用于填充变量
返回具有声明类型的变量
}()
您需要确保对惰性变量的调用的返回与类型匹配。另请记住,惰性 var 虽然称为变量,但一旦设置就不会改变,并且在这方面更像是常量。有一些解决方法,但它们已经在这里得到解决... Re-initialize a lazy initialized variable in Swift
关于ios - Apple Page Control 示例代码导致黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55797734/