2014-03-25 47 views
7

我想创建一个SKLabelNode,它应该有相同的长度(对于猜字游戏)。不幸的是,SKLabelNode决定总是切断任何前导和尾随空格。此行为不在文档中描述。我怎样才能避免/关闭这种行为?SKLabelNode删除前导和尾随空格 - 我该如何阻止?

+2

您是否已将水平对齐模式设置为左对齐或右对齐?如果对齐方式为中心(默认),则前缀/后缀有多少空格无关紧要。 – LearnCocos2D

回答

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的倍数添加到矩形的宽度,它可能是正确的。

+0

很好的解决方法来解决问题。谢谢。 –

相关问题