2015-10-15 92 views
2

我剛剛在界面生成器中創建了一個新的UIViewController。這是從UITableViewController(小區)。我現在想在UIViewController內使用SKScene。這是如何完成的?將SKScene添加到UIViewController?

而對於一個側面說明...

如果SKScene佔據整個UIViewController.view你能在現場的頂部覆蓋UIKit對象?

還是更創造UIViewController.view內的單獨UIView舉行SKScene,然後佈局UIKit物體周圍這個單獨UIView,並讓默認UIViewController.view充當所有這些元素的容器?如果採取這種方法,理論上講,這些UIKit對象可以被SKScene訪問嗎?

回答

2
  1. 將SKView添加到您的viewController。
  2. 將SKScene添加到您的SKView。

您可以覆蓋SKScene中的UIKit項目。這就是我在遊戲中使用集合和表格視圖的方式。但是,他們需要作爲SKView的SKView中的子視圖進行添加。

SKScene has a view property that should hold a reference它包含在SKView中。所以這只是一個做這樣的事情。

class MyScene: SKScene { 
    var someView: UIView 

    override func didMoveToView(view: SKView) { 
     someView = //setup view here 
     view.addSubview(someView) 
    } 
} 

然後在這個場景中,你可以隨心所欲地訪問你的UIKit對象。

0

如果您創建一個新的Spritekit應用程序,它將使視圖控制器已經設置滿足您的需要。你所需要做的就是將視圖控制器複製到你的項目中,應用這個segue,並且你將會很樂意與skscene一起工作。

在UIKit上回答你的問題,是的,你可以將UIKit元素放置在SKScene的頂部,它當然只會被視爲skscene是一部分的視圖,所以場景本身不能直接與它們交互,你需要實現某種消息傳遞系統,以便兩者可以通信。

相關問題