向SKLabelNode添加背景

3

我一直在尝试为我的SKLabelNode添加背景,但是我不知道如何在Swift 3中以编程方式实现它。我看到一些旧帖子使用 .background,但是对我来说这并不起作用。

let background = SKSpriteNode(color: UIColor.white, size: CGSize(width: CGFloat((title.frame.size.width)), height:CGFloat((title.frame.size.height)))) 
background.zPosition = -1
background.position = CGPoint(x: self.frame.width / 12 * 6, y: self.frame.height / 12 * 11); title.addChild(background)

请发布你已经尝试过的代码。 - cole
你说的“添加背景”和“周围”的意思是什么?哪些旧帖子建议使用.background属性?“对我无效”是什么意思? - Luca Angeletti
我想在标签周围添加一个小的颜色轮廓。 - GS.
@GS,请检查我的新答案。 - cole
1个回答

3

请看这段新代码,我认为它更适合解决您的问题。

    let shape = SKShapeNode()
    shape.path = UIBezierPath(roundedRect: CGRect(x:(label?.frame.origin.x)! - 15, y: (label?.frame.origin.y)! - 15, width: ((label?.frame.size.width)!+30), height: ((label?.frame.size.height)! + 50 )), cornerRadius: 64).cgPath
    shape.position = CGPoint(x: frame.midX, y: frame.midY)
    shape.fillColor = UIColor.red
    shape.strokeColor = UIColor.blue
    shape.lineWidth = 5
    label?.addChild(shape)

Layout


当我给它添加一个位置时,背景消失了。 - GS.
这是我的代码: let background = SKSpriteNode(color: UIColor.white, size: CGSize(width: CGFloat((title.frame.size.width)), height:CGFloat((title.frame.size.height)))) background.zPosition = -1 background.position = CGPoint(x: self.frame.width / 12 * 6, y: self.frame.height / 12 * 11); title.addChild(background) - GS.
嗯,你不应该将标签添加为背景的子元素吗?background.addChild(label) - Fluidity
不一定。那样做也不会错。这取决于先声明哪个变量以及你想如何使用它。对于这个问题,没有提供任何信息,所以我选择以这种方式回答。 - cole
1
不要忘记使用@person... 我没有收到您的回复 :) - Fluidity
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接