0

我在我的 SpriteKit 游戏中使用 UISliders。

有时我想暂停游戏并在 SKLabelNode 中添加一些信息,但我找不到将 SKLabelNode 放置在 UISlider 顶部的方法。

这是一个简化的例子。

   override func didMove(to view: SKView) {

let slider = UISlider(frame: CGRect(x: 100, y: 100, width: 300, height: 50))

let label = SKLabelNode(text: "Text Label should be on top of Slider")
label.fontColor = .red

label.verticalAlignmentMode = .top
label.position = CGPoint(x:160, y:self.frame.size.height - 110)


view.addSubview(slider)
self.addChild(label)

slider.layer.zPosition = 1
label.zPosition = 2

}

UISlider 仍然高于 SKLabel :-(。任何帮助表示赞赏。

编辑:回答@Muffinman2497 的问题“为什么不使用 UILabel?”

我可能必须这样做,但我实际上使用的是使用 spriteKit 和 SKLabels 设计的自定义多行标签。所以我希望进行简单的属性更改而不是重新设计。

不过,使用 UILabel 确实有效。

 let myUILabel = UILabel(frame: CGRect(x: 50, y: 0, width: 300, height: 50))
myUILabel.text = "UILabel would like to obscure UISlider"
myUILabel.backgroundColor = .red
slider.addSubview(myUILabel)
slider.layer.zPosition = 1
myUILabel.layer.zPosition = 2
4

0 回答 0