CAGradientLayer设置为scenekit背景块场景

时间:2018-02-26 02:49:31

标签: swift scenekit cagradientlayer sceneview

我正在开发一款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。有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

这是因为UIKit呈现视图和图层的方式。将其设为图像,然后将其设置为背景。