在xCode 5 / iOS 7中,UILabel的对齐行为发生了改变吗?

15

我刚从xCode 4.x升级到xCode 5,同时跳跃到iOS 7。 过去,我曾在UILabel中放置带有尾随空格的文本,并使用右对齐留下一点空白以便右侧文字不挨边。 自从我升级到xCode 5后,这种行为似乎已经改变了。 当UILabel向右对齐其文本时,它似乎忽略了尾随的空格,并将文本与完全没有尾随空格时一样对齐。

其他人是否也见过这种情况? 在xCode中是否有添加边缘插入来调整这种新行为的方法,或者必须在代码中完成?


我在iOS 7设备上看到了完全相同的行为。在我的情况下,这是在一个旧应用程序中出现的,我还没有将其迁移到Xcode 5,因此仍然使用Xcode 4.6.3构建它。这意味着它也影响着iOS 6兼容模式。在这个应用程序中,我之所以首先添加这些尾随空格,是为了克服另一个UILabel错误:右对齐斜体文本在右侧被裁剪!所以现在我被迫在同一段代码中使用新的解决方法。这一次,我最终采取了一个肮脏的修复方法,将文本更改为居中对齐并动态调整框架。 - Magnus
你可以尝试使用 option-space(或 alt-space),因为这会给出一个不同的空格字符。 - amergin
4个回答

7
我发现了相同的问题。我认为问题不在于更改xCode5,而是当运行在ios7下时进行更改。苹果似乎现在从将用于填充行的UILabel中显示的文本块内删除所有空格字符,这些字符位于行的开头或结尾。如果在两个单词之间的一行中使用多个空格字符,则不会删除这些字符。
我们一直在使用UILabel来布局从标记语言提供的多行文本块。某些文本内容需要居中对齐,但是有意添加了空格以将特定行的文本推到左侧或右侧。这在ios6下被识别并且运行得很完美,但在ios7下却出现了问题。
我想知道为什么苹果会做出这种改变。其他人有这个问题吗?为此有什么解决方法吗?我们正在尝试使用具有类似空格但实际上不是空格的控制字符的自定义字体。

谢谢。有时我会在按钮文本前使用空格,以便在按钮图形和标题之间添加更多空间(我认为内部是一个UILabel)。我正在使用中心控制对齐 - 它似乎像以前一样正常工作。我还没有检查每种文本对齐方式(左、右、中)的行为是否已更改。 - Rick Morgan
我也遇到了这个问题。非常令人沮丧。更奇怪的是,似乎只有尾随空格受影响 - 前导空格仍然被呈现。 - DanM
而且,忽略尾随空格的荒谬决定似乎也被应用于调整字体大小以适应宽度的计算。 - DanM

1

请看UILabel text margin

大多数建议是通过代码来实现的。

我用的是类似这样的东西:

[myLabel setFrame:CGRectMake(75 ,20,size.width + 5,size.height+2)]; 其中size是我的文本内容的CGSize

您也可以尝试使用自动布局约束来完成此操作。


谢谢。使用代码可以完成这个任务的示例确实很多。我很好奇是否还有其他人看到了UILabel行为的变化。 - Rick Morgan

0

我使用了\a:

label.text = [NSString stringWithFormat: @"%@ \a", originalString];

这会强制/欺骗空间显示出来。


-1

是的,我看到了,但我并没有找到一个简单的通用解决方案!


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