Подтвердить что ты не робот

Установка цвета фона для SKLabelNode?

Я хочу знать, есть ли способ установить цвет фона для SKLabelNode, а не цвет шрифта. Я ищу что-то вроде приведенного ниже кода, который доступен в приложениях ios.

     label.backgroundColor = [UIColor redColor];
4b9b3361

Ответ 1

Попробуйте добавить SKLabelNode в качестве дочернего элемента SKSpriteNode.

SKLabelNode *label = [[SKLabelNode alloc]initWithFontNamed:@"Helvetica"];
label.position = CGPointMake(0, -label.frame.size.height/2);

SKSpriteNode *background = [SKSpriteNode spriteNodeWithColor:[UIColor redColor] size:CGSizeMake(label.frame.size.width, label.frame.size.height)];
background.position = CGPointMake(200, 100);

[background addChild:label];
[self addChild:background];

Ответ 2

Добавление SKLabelNode в качестве дочернего элемента SKSpriteNode работает, но оно скрывает текст. Итак, я решил эту проблему, установив zPosition фона на отрицательное число. Вот код быстрого <3 > :

var label = SKLabelNode(fontNamed: "Helvetica")
label.position = CGPoint(x: CGFloat(0), y: CGFloat(-label.frame.size.height / 2))
var background = SKSpriteNode(color: UIColor.red, size: CGSize(width: CGFloat(label.frame.size.width), height:CGFloat(label.frame.size.height)))background.position = CGPoint(x: CGFloat(200), y: CGFloat(100))
background.zPosition = -1
label.addChild(background)
self.addChild(label)

Ответ 3

Не забудьте включить текстовое значение перед вычислением фона GCSize из узла метки, иначе возвращаемые значения будут равны нулю, так как у него нет текста для определения размера метки.

..правильно о проблемах слоя