【问题标题】:How can SKScene communicate with its container SKView?SKScene 如何与其容器 SKView 进行通信?
【发布时间】:2017-08-01 20:16:36
【问题描述】:

我在SKView 中显示了SKScene。我想要一种将信息从场景发送到视图的方法,以便稍后与控制器一起使用。

例如,考虑让 View Controller 作为SKView 的代理,SKView 需要在其呈现场景的某个部分被点击时通知UIViewController。

【问题讨论】:

    标签: ios swift sprite-kit uikit


    【解决方案1】:

    SKScene 有一个方便的实例成员 .view 用于这种情况。要访问标准的SKView 方法和属性,您可以像这样使用它:

    self.view?.addGestureRecognizer(pinchGestureRecognizer)
    

    如果您的包含视图是 SKView 子类,您可以向下转换 .view 以访问自定义方法:

    if let myView = self.view as? MyCustomViewClass {
        myView.sceneWasTapped()
    }
    

    请记住,.view 是可选的;如果尚未将场景添加到视图中,它将为零。场景在添加到视图时会调用 didMove(to view: SKView),因此这是一个执行依赖于现有 .view 的事情的好地方。

    【讨论】:

    • 完美!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2015-04-05
    • 2014-09-09
    • 2016-09-10
    • 2019-04-20
    • 2019-08-07
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多