斯威夫特& iOS8:SKLabelNode没有显示

时间:2014-09-18 23:09:44

标签: swift sprite-kit ios8

所以我试图学习Swift和Sprite工具包,我开始学习Apple教程(您可能需要登录Apple Developer): https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/GettingStarted/GettingStarted.html#//apple_ref/doc/uid/TP40013043-CH2-SW1

我将从Obj-C给出的代码翻译成Swift并且它工作得很好但是我的SKLabelNode名为helloNode并没有出现,尽管Sprite工具包告诉我场景中确实有1个节点。

以下是代码:

class HelloScene: SKScene {
var contentCreated = false

override func didMoveToView(view: SKView) {
    if(!self.contentCreated) {
        createSceneContents()
        contentCreated = true
    }
}

func createSceneContents() {
    self.backgroundColor = SKColor.blueColor()
    self.scaleMode = SKSceneScaleMode.AspectFit
    self.addChild(newHelloNode())
}

func newHelloNode() -> SKLabelNode {
    let helloNode = SKLabelNode(fontNamed: "Chalkduster")
    helloNode.text = "Hello, World!"
    helloNode.fontSize = 42
    helloNode.fontColor = SKColor.whiteColor()
    helloNode.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMidY(self.frame))
    return helloNode
}

}

HelloScene已实例化并成功添加到主View Controller。

谢谢!

1 个答案:

答案 0 :(得分:2)

我有同样的问题。问题在于xcode 6中的自动布局。在设置自动布局设置之前正在加载场景。在ViewController中将场景初始化和presentScene置于viewDidLayoutSubviews中,如下所示:

/api