如何将 UILabel 放在 SKSpriteNode 后面

how to place UILabel behind SKSpriteNode

我正在尝试将 UILabel 放在 SKSpriteNode 后面。但无论我尝试什么,标签都停留在 SpriteNode 的前面。 z-index 不起作用,.movetoback 也不起作用。

谁能告诉我该怎么做?

您可以将 UILabel 添加为 SKView 的子视图并相应地调整其位置。

例如下面创建一个白色方形精灵,前面有一个 UILabel:

scene = SKScene(size: spriteView.bounds.size)
scene.anchorPoint = CGPoint(x: 0.5, y: 0.5)

let sprite = SKSpriteNode(
    color: SKColor.whiteColor(),
    size: CGSize(width: 100, height: 100)
)

scene.addChild(sprite)

spriteView.presentScene(scene)

let frame = CGRect(
    x: spriteView.bounds.midX - 50,
    y: spriteView.bounds.midY - 50,
    width: 100,
    height: 100)

label = UILabel(frame: frame)
label.textAlignment = .Center
label.text = "Ook"

spriteView.addSubview(label)

P.S。我不明白你为什么要使用 UILabelSpriteKitSKLabelNode 这实际上是相同的但可以成为场景的一部分,这样会让你的生活更轻松调整位置。