7

SKLabelNode を作成したかったのですが、これは常に同じ長さ (単語推測ゲーム用) である必要があります。残念ながら、SKLabelNode は、先頭と末尾のスペースを常に切り取ることを決定します。この動作はドキュメントには記載されていません。その動作を回避/オフにするにはどうすればよいですか?

4

1 に答える 1

1

ラベルを右揃えにするだけの場合は、右揃えモードを使用します。

myLabel.horizontalAlignmentMode = SKLabelHorizontalAlignmentModeRight;

ただし、SKLabelNode の周囲に四角形を作成しようとすると、calculateAccumulatedFrame が実際にラベルの幅を計算する前にスペースを削除し、間違ったサイズを返すことがわかります。

ただし、ごまかすことはできます。キャラクターをダミーのサイジング メトリックとして使用して、フレーム サイズに追加します。

SKLabelNode* dummyPaddingLetter = [SKLabelNode labelNodeWithFontNamed:<your font name>];
dummyPaddingLetter.fontSize = <your font size>;
dummyPaddingLetter.text = @"W"; // something 'wide'
float fOneSpace = [dummyPaddingLetter calculateAccumulatedFrame].size.width;

次に、fOneSpace の倍数を四角形の幅に追加すると、おそらくほぼ適切になります。

于 2015-06-22T17:47:47.540 に答える