我在我的 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