Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 是否将场景添加到UIViewController?_Ios_Swift_Uiviewcontroller_Sprite Kit_Skscene - Fatal编程技术网

Ios 是否将场景添加到UIViewController?

Ios 是否将场景添加到UIViewController?,ios,swift,uiviewcontroller,sprite-kit,skscene,Ios,Swift,Uiviewcontroller,Sprite Kit,Skscene,我刚刚在interface builder中创建了一个新的UIViewController。它从UITableViewController(单元格)分离。现在我想在这个UIViewController中使用SKScene。这是如何实现的 顺便说一句 如果SKScene占据了整个UIViewController.view可以在场景顶部覆盖UIKit对象吗 还是最好在UIViewController.view内创建一个单独的UIView来保存SKScene,然后围绕这个单独的UIView布局UIKi

我刚刚在interface builder中创建了一个新的
UIViewController
。它从
UITableViewController
(单元格)分离。现在我想在这个
UIViewController
中使用
SKScene
。这是如何实现的

顺便说一句

如果
SKScene
占据了整个
UIViewController.view
可以在场景顶部覆盖
UIKit
对象吗


还是最好在
UIViewController.view
内创建一个单独的
UIView
来保存
SKScene
,然后围绕这个单独的
UIView
布局
UIKit
对象,并让默认的
UIViewController.view
充当所有这些元素的容器?如果采用这种方法,理论上讲,
SKScene
可以访问这些
UIKit
对象吗

如果您创建一个新的Spritekit应用程序,它将为您所需的内容设置视图控制器。您只需将视图控制器复制到项目中,应用segue,就可以很好地使用skscene了

要回答您关于UIKit的问题,是的,您可以将UIKit元素放置在SKScene的顶部,它当然只会被攻击到SKScene所属的视图,因此场景本身无法直接与它们交互,您需要实现某种消息传递系统,以便两者可以通信

  • 将SKView添加到viewController
  • 将SKView添加到SKView
  • 可以从场景内部覆盖UIKit项目。这就是我在游戏中使用集合视图和表视图的方式。但是,它们需要添加为保存SKView场景的SKView上的子视图

    要查看其包含在中的。因此,这将只是一个这样做的问题

    class MyScene: SKScene {
        var someView: UIView
    
        override func didMoveToView(view: SKView) {
            someView = //setup view here
            view.addSubview(someView)
        }
    }
    

    然后在此场景中,您可以在任何地方访问UIKit对象。

    您可以在此处参阅我的教程博客: