2014-07-25 3 views
0

컨트롤러 뷰에 3D 하위 뷰를 추가하려고 할 때 문제가 있습니다. 3D 하위보기를 볼 수 없습니다.컨트롤러 뷰에 3D 하위 뷰를 추가 할 수 없습니다.

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) 
} 

내가 SCNView (3D 뷰)의 서브 클래스 내 GameSceneView을 볼 수없는이 코드 : GameControllerView 클래스의 코드입니다. 그러나 viewTest 변수 (cubeData 바로 아래)의 주석을 삭제하면 내 GameSceneView가 표시되지만 내 컨트롤러보기의 내용은 표시되지 않습니다.

질문 : 3D 뷰가 컨트롤러보기에 표시되지 않는 이유는 무엇입니까?

편집 : 3D보기가 컨트롤러보기 배경 뒤에 있음을 알게되었습니다. 뷰 컨트롤러에 포함 된 배경 위에 3D 뷰를 추가하려면 어떻게합니까?

답변

0

수퍼 뷰가 GPU 렌더링 (즉, SceneKit 또는 SpriteKit보기) 인 경우 GPU 렌더링 된 하위보기에 문제가있을 수 있습니다. 한 가지 해결책은 현재 귀하의보기 컨트롤러의 view을 하위보기로 만들어서 scnView이 형제보기가되도록하고 insertSubview:aboveSubview 또는 관련 방법을 사용하여 레이어를 레이어하는 것일 수 있습니다.

관련 문제