【问题标题】:SKLabelNode removes leading and trailing spaces - How can I stop that?SKLabelNode 删除前导和尾随空格 - 我该如何阻止它?
【发布时间】:2014-03-25 10:56:31
【问题描述】:

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

【问题讨论】:

  • 您是否将水平对齐模式设置为左对齐或右对齐?如果对齐是中心(默认),则前缀/后缀的空格数无关紧要。

标签: ios sprite-kit sklabelnode


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

【讨论】:

    猜你喜欢
    • 2017-09-17
    • 2012-02-28
    • 2015-01-19
    • 1970-01-01
    • 2015-03-11
    • 2021-09-13
    • 1970-01-01
    • 2020-08-20
    • 2018-10-04
    相关资源
    最近更新 更多