使用SpriteKit的UITableView

时间:2015-04-05 20:49:32

标签: ios uitableview swift uiview sprite-kit

如何使用spriteKit实现UITableView?我知道我已经在ViewController文件中创建了tableView作为插座,但是如何从我的gameScene访问这个tableView,这样我就可以改变位置,大小,单元格内容等。

到目前为止,我还没有找到任何有关这种情况的有用说明或文件。

2 个答案:

答案 0 :(得分:6)

如果你想在你的场景中使用你的UITableView(你在故事板中创建,你猜这是你创建它的地方),你需要做一些事情。

首先在场景中为表视图创建一个变量。我的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执行任何操作。

请记住,UITable是UIKit的一部分,可能会坐在您的SKView上(作为孩子添加)。定位和大小将在UIKit坐标系中。

希望这是有道理的,也是有帮助的。

答案 1 :(得分:4)

您可以使用didMoveToView中的视图

-(void)didMoveToView:(SKView *)view {
    // your table code
    [view addSubview:myTable];
}

使用SKView视图作为关键点。

如果您使用的是另一种没有SKView视图的方法,则可以执行以下操作:

-(void)myMethod {
    SKView* view = self.view;
    // your table code
    [view addSubview:myTable];
}