Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
View Can';t将三维子视图添加到控制器的视图中_View_Swift_Scenekit - Fatal编程技术网

View Can';t将三维子视图添加到控制器的视图中

View Can';t将三维子视图添加到控制器的视图中,view,swift,scenekit,View,Swift,Scenekit,当我想将三维子视图添加到控制器视图时,我遇到了一个问题。我看不到3D子视图。是GameControllerView类的代码: override func viewDidLoad() { super.viewDidLoad() println("Start the game") // Model cubeData = CubeData() /* let viewTest = UIView(frame: self.view.frame) s

当我想将三维子视图添加到控制器视图时,我遇到了一个问题。我看不到3D子视图。是GameControllerView类的代码:

override func viewDidLoad() {
    super.viewDidLoad()

    println("Start the game")

    // Model
    cubeData = CubeData()
    /*
    let viewTest = UIView(frame: self.view.frame)
    self.view = viewTest
    */

    // 3D view position
    let sizeScnView = CGSize(width: 350.0, height: 350.0)
    let centerView = CGPoint(x: CGRectGetMidX(self.view.frame) - sizeScnView.width/2, y: CGRectGetMidY(self.view.frame) - sizeScnView.height/2)
    scnView = GameSceneView(frame: CGRect(origin: centerView, size: sizeScnView))

    // add 3D view
    self.view.addSubview(scnView)

    // don't allows the user to manipulate the camera
    scnView.allowsCameraControl = true

    // show statistics such as fps and timing information
    scnView.showsStatistics = false

    // Start Accelerometer
    self.motionManager = CMMotionManager()
    self.startAccelerometer()

    timer = NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: Selector("updateTimer"), userInfo: nil, repeats: true)
}
有了这段代码,我看不到我的GameSceneView,它是SCNView(3D视图)的一个子类。但是如果我删除viewTest变量的注释(就在cubeData下面),则会显示GameSceneView,但不会显示控制器视图的内容

问题:为什么三维子视图不能显示在控制器视图上


编辑:我刚刚注意到3D视图位于控制器视图背景的后面。如何在视图控制器中包含的背景上添加三维视图?

如果superview是GPU渲染的(即SceneKit或SpriteKit视图),则GPU渲染的子视图可能会出现问题。一种解决方案可能是将当前视图控制器的
视图
设置为子视图,以便
scnView
是它的同级视图,并使用或相关方法对其进行分层