UILabel 垂直对齐缺少的空间

Posted

技术标签:

【中文标题】UILabel 垂直对齐缺少的空间【英文标题】:UILabel Vertical align missing space 【发布时间】:2014-02-13 11:22:05 【问题描述】:

我使用UILabel 来显示带有vertical alignment 的文本。我将文本显示为 逐个字符 垂直对齐。实际上它是一个与CABasicAnimation对齐的移动文本。但我的问题是

    每一行都应该show one character,但是当我尝试将标签宽度拉伸到 显示单个字符,某些字符被部分擦除。看屏幕 xib 的截图(带有小文本的示例).. 或者尝试扩展帧大小,有些行显示单字符,有些显示双字符单词之间缺少空格。见截图。

如何用我的 xib 修复它?以编程方式回答也可以接受。

注意:此示例中使用的文本“一些长文本”。

【问题讨论】:

在字母之间插入换行符\n 我已经用过了。但是字符换行并没有采用那个转义字符。请尝试使用您的 xcode。你可以看到那个问题。 @iDev 看到我的屏幕截图如果我正在使用空间发生了什么? 【参考方案1】:

您不需要垂直对齐。只需使 UILabel 更宽并在字符串的每个字符后输入一个 \n 即可。

        NSString *longString = @"This is a very very long string";

        NSString *labelString = @"";

        self.label.text = labelString;
        self.label.numberOfLines = 500; //just put a big number or calculate something

        for (int n=longString.length - 1; n > -1; --n) 

            labelString = [NSString stringWithFormat:@"%@\n%@", [longString substringWithRange:NSMakeRange(n, 1)], labelString];

                self.label.text = labelString;

        

【讨论】:

见我想与我的项目垂直对齐。因为我没有足够高的视野。所以我想垂直显示一些快讯。收到了吗? 是的,我明白了。仍然认为您不需要垂直对齐。只需逐个添加字符即可获得效果。您甚至可以在 animateWithDuration 中对其进行变形以使其更优雅。 你的意思是水平的吗? 不,我的意思是垂直的。看起来就像你的照片,但没有问题。这样想:你有一个带有全文的 UIString 和另一个是空的。您将 UILabel 设置为空的。然后你开始一个循环:在每次迭代中,你获取第一个字符串的最后一个字符 - 循环号并将其添加到第二个字符串,然后刷新 UILabel。如果你需要,我可以给你写代码。 UIString 是什么意思?你能用这段代码更新你的答案吗?我不明白你尝试了什么..

以上是关于UILabel 垂直对齐缺少的空间的主要内容,如果未能解决你的问题,请参考以下文章

在 UILabel 中将文本垂直对齐到顶部

在 UILabel 中将文本垂直对齐到顶部

UILabel 垂直对齐

让UILabel的文字顶部对齐

如何将 UIButton 文本与 UILabel 文本垂直对齐?

让UILabel的文字顶部对齐