我正在开发 Swift 4、SceneKit 3D 游戏。我使用以下方法将场景的背景设置为 CAGradientLayer:
let gradientLayer = CAGradientLayer()
gradientLayer.frame = self.view.bounds
gradientLayer.colors = [UIColor.white.cgColor, UIColor.init(red: 160/255, green: 235/255, blue: 232/255, alpha: 1).cgColor]
sceneView.scene?.background.contents = gradientLayer
仅在我的手机上运行良好。如果我使用另一个测试设备,CAGradientLayer 会遮挡场景。如果我将 sceneView 的背景设置为 UIColor,则它适用于所有设备。
我该如何解决这个问题以及为什么这是一个问题?
编辑:由于某种原因,它看起来可能会将gradientLayer作为子层添加到UIView中。有办法解决这个问题吗?
最佳答案
这是因为 UIKit 渲染 View 和图层的方式。将其设为图像,然后将其设置为背景。
关于swift - CAGradientLayer 设置为 scenekit 背景 block 场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48980785/