如何用spriteKit實現UITableView?我知道我已經在ViewController文件中創建了tableView作爲插座,但是如何從我的gameScene訪問此tableView,以便我可以更改位置,大小,單元格內容等。UITableView與SpriteKit
我迄今爲止還沒有能力找到有關這種情況的任何有用的指示或文件。
如何用spriteKit實現UITableView?我知道我已經在ViewController文件中創建了tableView作爲插座,但是如何從我的gameScene訪問此tableView,以便我可以更改位置,大小,單元格內容等。UITableView與SpriteKit
我迄今爲止還沒有能力找到有關這種情況的任何有用的指示或文件。
,你說出口,所以我我猜是你創造它的地方),你需要做一些事情。
首先在您的場景中爲您的表視圖創建一個變量。我的swift是生鏽的,但是如果它是Objective-C,那麼將在YourScene.h文件中創建一個屬性。
現在,當你實例化你的場景時,你可以設置你的場景中有一個出口的表格視圖。事情是這樣的......
scene.tableView = tableView
skView.presentScene(scene)
場景中的
接下來的事情你想實現UITableViewDelegate, UITableViewDataSource
這樣,在你的場景,你可以做到這一點你didMoveToView
...
tableView?.delegate = self;
tableView?.dataSource = self;
現在,在你的場景你應該有
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
func cellForRowAtIndexPath(indexPath: NSIndexPath) -> UITableViewCell?
這應該允許你做任何你會做場景代碼中的tableView做任何事情。
只記得一個UITableView是UIKit的一部分,可能會坐在你的SKView的頂部(作爲一個孩子添加)。定位和尺寸將在UIKit座標系中。
希望這是有道理的,是有益的。
您可以使用視圖中didMoveToView
-(void)didMoveToView:(SKView *)view {
// your table code
[view addSubview:myTable];
}
使用視圖SKView是這裏的關鍵。
如果你是在不具備SKView另外一個方法,你可以這樣做:如果你想使用你的UITableView(這是在故事板創建
-(void)myMethod {
SKView* view = self.view;
// your table code
[view addSubview:myTable];
}
謝謝你,這對我更有意義。你能否稍微解釋一下這個部分:'scene.tableView = tableView'和 'skView.presentScene(scene)''scene.tableView'部分是什麼?那應該是我創造的財產嗎? – 2015-04-06 00:02:56
@Reece55應該在你的視圖控制器中。在你的視圖控制器中,你應該已經看到'skView.presentScene(scene)'。另一部分只是設置你的表格視圖,你應該在你的視圖控制器中有一個插口,以適應你場景中的變量。那有意義嗎? – 2015-04-06 00:05:42
非常感謝。你一直是一個巨大的幫助。我一直在研究這個問題很長時間。非常感激! – 2015-04-06 00:50:04