ios - Apple Page Control 示例代码导致黑屏

标签 ios swift uiscrollview lazy-loading uiscrollviewdelegate

我已经下载了Apple的PageControl Sample Code尝试学习如何在用户滚动时创建延迟加载的页面。然而,当我滚动图片时,开箱即用的图片就会消失,并且出现黑屏。代码中是否存在错误是否应该发生这种情况?

page control black screen

最佳答案

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

我能够通过注释掉 viewDidLayoutSubviews 方法调用中的 _ = setupInitialPages 调用来重现您的问题。取消注释,该应用程序运行良好。

enter image description here

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

延迟加载变量的语法是:

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/

相关文章:

ios - 如何一个接一个地执行多个异步请求

swift - MapBox didUpdateUserLocation 从未被调用

iOS swift : scrollview does not call didscrolltotop

ios - 从 iOS 中的联系方式获取街道、城市、州、 zip 和国家/地区并填充到标签

ios - 音频 CMSampleBuffer 格式

ios - actions 可以成为 MVVM ViewModel 的一部分吗?

ios - 如何克服移动 Safari 中奇怪的 "placeholder"问题

ios - iOS 中的自动续订订阅未调用订阅状态

iphone - 缩放时带有 UIImageView 的 UIScrollView 居中旋转?

ios - 修复 UIScrollView 中的 UITextView