ios – SpriteKit – didMovetoView未被调用

ios – SpriteKit – didMovetoView未被调用,第1张

概述这是我的视图控制器代码 import UIKitimport SpriteKitimport GameplayKitclass GameViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() if let view = self.view as 这是我的视图控制器代码

import UIKitimport SpriteKitimport GameplayKitclass GameVIEwController: UIVIEwController {    overrIDe func vIEwDIDLoad() {        super.vIEwDIDLoad()    if let vIEw = self.vIEw as! SKVIEw? {        // Load the SKScene from 'GameScene.sks'        if let scene = SKScene(filenamed: "GameScene") {            // Set the scale mode to scale to fit the window            scene.scaleMode = .aspectFill            // Present the scene            vIEw.presentScene(scene)        }        vIEw.ignoresSiblingOrder = true        vIEw.showsFPS = true        vIEw.showsNodeCount = true    }}

这是我的GameScene代码

import SpriteKitimport GameplayKit    class GameScene: SKScene {       overrIDe func dIDMove(to vIEw: SKVIEw) {            print("gets called")        }

但由于某些原因,在调试区域,它没有打印“被调用”,这表明dIDMove甚至没有被调用.这里发生了什么事?我错过了什么吗?

解决方法 iOS 9的方式

在你的GameVIEwController中尝试直接呈现你的GameScene而不是通用的SKScene.

if let scene = GameScene(filenamed: "GameScene") { ...

请记住,“filenamed”不是.swift文件的名称,它是用于xCode级别编辑器的.sks文件的名称.

新的iOS 10方式

苹果现在似乎更愿意通过一个通用的SKScene,就像你正在尝试的那样.

if let scene = SKScene(filenamed: "GameScene") { ... }

要使其工作,请转到相关的.sks文件并转到右侧的检查器.单击第二个最后一项(自定义类),然后在自定义类字段中输入.swift文件的名称.

希望这可以帮助.

总结

以上是内存溢出为你收集整理的ios – SpriteKit – didMovetoView未被调用全部内容,希望文章能够帮你解决ios – SpriteKit – didMovetoView未被调用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1052240.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存