12

フォントの色ではなく、SKLabelNode の背景色を設定する方法があることを知りたいです。iOSアプリで利用できる以下のコードのようなものを探しています。

     label.backgroundColor = [UIColor redColor];
4

3 に答える 3

11

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];
于 2015-04-24T17:36:33.120 に答える
2

SKSpriteNode の子として SKLabelNode を追加すると機能しますが、テキストが非表示になります。そこで、背景の zPosition を負の数に設定することで、この問題を解決しました。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)
于 2017-01-12T06:46:15.930 に答える
1

ラベル ノードから背景の GCSize を計算する前に、必ずテキスト値を含めてください。そうしないと、ラベルのサイズを決定するテキストがないため、返される値はゼロになります。

..レイヤーの問題について修正

于 2019-05-18T00:22:51.670 に答える