Xcode5 和 iOS7:Localizable.strings 中字符串中的尾随空格不再起作用

Posted

技术标签:

【中文标题】Xcode5 和 iOS7:Localizable.strings 中字符串中的尾随空格不再起作用【英文标题】:Xcode5 and iOS7: trailing whitespaces in strings in Localizable.strings not working anymore 【发布时间】:2013-09-25 17:28:02 【问题描述】:

在我的 Localizable.strings 中,我定义了一个带有尾随空格的字符串,如下所示:

"%@ points  " = "%@ Punkte  ";

这在 ios6 中工作得很好,但在 iOS7 模拟器上运行时,字符串被修剪并且尾随空格被去除。

背景:上面的字符串在标签中是右对齐的。我使用空格作为填充,因为我不想继承 UILabel 或为一个标签编写一堆代码。

我也尝试过使用 ASCII 符号,但这也没有用。

任何关于简单灵魂的建议将不胜感激。

谢谢!

【问题讨论】:

【参考方案1】:

你试过non breaking space character吗?

【讨论】:

是的,我试过 0x00A0。它在最后一个字符不是空字符时起作用:"%@ points%C." = "%@ Punkte%C."; 其中 %C 是我添加 0x00A0 的位置。但是当我将它添加为最后一个字符时,它会自动删除。【参考方案2】:

好的,我通过将标签作为子视图添加到视图并将标签的宽度设置为比视图的宽度小一点来解决这个问题。

所有样式,即背景图像、动画等都是针对视图完成的,而不是标签。不是 KISS 原则,但它有效。

还是谢谢。

【讨论】:

【参考方案3】:

也许您可以尝试使用对我有用的 NSMutableAttributedString 来解决此问题。这 ”。”代替空格。

NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%i.", count]];


 [string addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0,string.length-1)];

 [string addAttribute:NSForegroundColorAttributeName value:[UIColor clearColor] range:NSMakeRange(string.length-1,1)];

【讨论】:

以上是关于Xcode5 和 iOS7:Localizable.strings 中字符串中的尾随空格不再起作用的主要内容,如果未能解决你的问题,请参考以下文章

Xcode5.0.1 和 ios7.0.3 问题 - 单击停止时 xcode 未停止 [关闭]

CorePlot 在 iOS7 应用程序/Xcode5 中抛出异常

如何防止xcode5切换到ios7布局

iOS7 Xcode5 开关状态 NSUserDefaults

Xcode5 iOS7 - UIPopoverController 角半径

在 xcode 5 中本地化 Localizable.string 会破坏整个文件