如何使用spriteKit实现UITableView?我知道我已经在ViewController文件中创建了tableView作为插座,但是如何从我的gameScene访问这个tableView,这样我就可以改变位置,大小,单元格内容等。
到目前为止,我还没有找到任何有关这种情况的有用说明或文件。
答案 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];
}