SKLabelNode去除了前导和尾随空格-我该如何阻止这种情况发生?

7

我想创建一个SKLabelNode,它应该始终具有相同的长度(用于猜单词游戏)。不幸的是,SKLabelNode决定始终剪掉任何前导和尾随空格。这种行为在文档中没有描述。我如何避免/关闭此行为?


2
你是否将水平对齐模式设置为左对齐或右对齐?如果对齐方式是居中(默认),那么无论你添加多少空格前缀/后缀都没有意义。 - CodeSmile
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的倍数添加到矩形的宽度上,可能就差不多了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接