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 回答