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 垂直对齐缺少的空间的主要内容,如果未能解决你的问题,请参考以下文章