【发布时间】:2014-03-25 10:56:31
【问题描述】:
我想创建一个 SKLabelNode,它应该始终具有相同的长度(对于猜字游戏)。不幸的是 SKLabelNode 决定总是切断任何前导和尾随空格。文档中未描述此行为。如何避免/关闭这种行为?
【问题讨论】:
-
您是否将水平对齐模式设置为左对齐或右对齐?如果对齐是中心(默认),则前缀/后缀的空格数无关紧要。
标签: ios sprite-kit sklabelnode
我想创建一个 SKLabelNode,它应该始终具有相同的长度(对于猜字游戏)。不幸的是 SKLabelNode 决定总是切断任何前导和尾随空格。文档中未描述此行为。如何避免/关闭这种行为?
【问题讨论】:
标签: ios sprite-kit sklabelnode
如果您只是想让标签对齐以使其右对齐,请使用右对齐模式。
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 的倍数添加到矩形的宽度上,它可能是正确的。
【讨论】: