我想在UILabel中写4行,所以我在编辑器中为numberoflines写了0行。
以下是我在ViewController中的内容
如果你看到,对于iOS 6,我只获得三行。知道为什么会这样吗?
如何在iOS 6中拥有4行?
答案 0 :(得分:1)
这很奇怪......
[introText sizeToFit];
做了这个伎俩
答案 1 :(得分:1)
正如我在评论中所写,几周前我遇到了同样的问题,这是我的解决方案,我根据systemVersion将行间距设置为paragraphStyle:
NSString *ver = [[UIDevice currentDevice] systemVersion];
int ver_int = [ver intValue];
if (ver_int < 7) {
NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
[paragraphStyle setLineSpacing: 10]; //set line spacing what you what
NSDictionary *attributes = @{ NSFontAttributeName: labelText.font, NSParagraphStyleAttributeName: paragraphStyle };
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:labelText.text attributes:attributes];
[labelText setAttributedText: attributedString];
} else {
NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
[paragraphStyle setLineSpacing: 5];
NSDictionary *attributes = @{ NSFontAttributeName: labelText.font, NSParagraphStyleAttributeName: paragraphStyle };
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:labelText.text attributes:attributes];
[labelText setAttributedText: attributedString];
}
答案 2 :(得分:0)
您是否使用属性字符串来调整行间距?在iOS6中存在许多与属性字符串相关的错误,特别是与行高和段落间距有关。
如果您尝试在同一个属性字符串中使用多个不同的属性,那么很多错误都会出现 - 就他们自己而言,它们会正确呈现。
答案 3 :(得分:0)
由于所有UI和字体更改,iOS6和iOS7之间会有所不同。我的猜测是iOS6中控件的高度稍微过小(可能是一个点),因此即使它也需要,控件也无法换行。尝试稍微扩大高度,看看它是否解决了问题。您可能必须使用这些方法来计算格式化文本将进入的CGSize,以便计算出控制的高度。