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