SKLabelNode未出现在SKSpriteNode swift上

SKLabelNode未出现在SKSpriteNode swift上,swift,sprite-kit,Swift,Sprite Kit,我正在尝试将SKLabelNode添加为SKSpriteNode的子级: var mainNode = SKSpriteNode() override func didMoveToView(view: SKView) { mainNode = SKSpriteNode(color: UIColor.redColor(), size: self.size) mainNode.position = CGPoint(x: CGRectGetMidX(self.frame), y:

我正在尝试将SKLabelNode添加为SKSpriteNode的子级:

var mainNode = SKSpriteNode()

override func didMoveToView(view: SKView) {

    mainNode = SKSpriteNode(color: UIColor.redColor(), size: self.size)
    mainNode.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))
    mainNode.zPosition = -2
    mainNode.name = "MainNode"
    self.addChild(mainNode)

    let myLabel = SKLabelNode(fontNamed:"Chalkduster")
    myLabel.text = "Hello, World!"
    myLabel.fontSize = 45
    myLabel.position = CGPoint(x:CGRectGetMidX(mainNode.frame), y:CGRectGetMidY(mainNode.frame))

    mainNode.addChild(myLabel)
}
但是SKLabelNode没有出现。我试图改变它的位置,但无论如何都不起作用


如果我在场景本身上添加标签(
self.addChild(myLabel)
),效果很好

您的问题是
CGPoint(x:CGRectGetMidX(mainNode.frame),y:CGRectGetMidY(mainNode.frame))
将标签放在边界之外。因此,如果您希望SKLabelNode水平和垂直居中,您可以这样做

let myLabel = SKLabelNode(fontNamed:"Chalkduster")
myLabel.text = "Hello, World!"
myLabel.fontSize = 45
myLabel.horizontalAlignmentMode = .Center
myLabel.verticalAlignmentMode = .Center
mainNode.addChild(myLabel)

您的问题是
CGPoint(x:CGRectGetMidX(mainNode.frame),y:CGRectGetMidY(mainNode.frame))
将您的标签置于边界之外。因此,如果您希望SKLabelNode水平和垂直居中,您可以这样做

let myLabel = SKLabelNode(fontNamed:"Chalkduster")
myLabel.text = "Hello, World!"
myLabel.fontSize = 45
myLabel.horizontalAlignmentMode = .Center
myLabel.verticalAlignmentMode = .Center
mainNode.addChild(myLabel)

在视图控制器的
viewdiload
中,在
中添加
scene.size=view.frame.size
,如果让场景…
阻塞,并将
myLabel
的位置设置为
CGPointZero
@0x141E,谢谢,效果不错!请将此作为答案发布,以便我可以在视图控制器中的
viewDidLoad
中接受它,在
中添加
scene.size=view.frame.size
,如果让场景…
阻塞并将
myLabel
的位置设置为
CGPointZero
@0x141E,谢谢,这很有效!请将此作为答案发布,以便我可以接受