如何在SpriteKit中将SKLabelNode放置在UISlider的顶部

时间:2019-02-04 02:25:51

标签: sprite-kit uislider sklabelnode zposition

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

0 个答案:

没有答案