2015-04-24 17 views
9

Chcę wiedzieć, czy istnieje sposób na ustawienie koloru tła dla kodu SKLabelNode, a nie dla koloru czcionki. Szukam czegoś podobnego do poniższego kodu, który jest dostępny w aplikacjach ios.Ustawianie koloru tła dla SKLabelNode?

 label.backgroundColor = [UIColor redColor]; 

Odpowiedz

9

Spróbuj dodać SKLabelNode jako dziecka z 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]; 
+0

Teraz tekst nie jest pokazany w 'SKLabelNode' i danym obszarze, gdzie dodałam' SKSpriteNode' wypełniona jest jego kolor. –

+0

Czy zostały ustawione właściwości label.text i label.fontColor, aby upewnić się, że są widoczne? – Sudeep

+0

Tak. Wszystko działało dobrze przed dodaniem tych linii kodów. Jeśli dam 'clearColor' do' SKSpriteNode', wtedy nic nie jest widoczne. –

0

Dodanie SKLabelNode jako dziecka z SKSpriteNode działa, ale ukrywa tekst. Rozwiązałem ten problem, ustawiając zPosition tła na liczbę ujemną. Oto kod Swift 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) 
+1

alternatywa: dodaj sklabelnode jako dziecko skspritenode. wtedy tekst nie będzie ukryty. – Crashalot