一提到UILabel的行间距,一般都是用下面的方法解决。
UILabel *label = [[UILabel alloc] initWithFrame:labelFrame];
[label setBackgroundColor:[UIColor clearColor]];
[label setTextColor:textColor];
[label setNumberOfLines:0];
label.font = textFont;
NSString *labelText = @"我是内容,我是内容,我是内容,我是内容,我是内容。";
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:labelText];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setLineSpacing:10];//调整行间距
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [labelText length])];
label.attributedText = attributedString;
[contentView addSubview:label];
[label sizeToFit];
[label setBackgroundColor:[UIColor clearColor]];
[label setTextColor:textColor];
[label setNumberOfLines:0];
label.font = textFont;
NSString *labelText = @"我是内容,我是内容,我是内容,我是内容,我是内容。";
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:labelText];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setLineSpacing:10];//调整行间距
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [labelText length])];
label.attributedText = attributedString;
[contentView addSubview:label];
[label sizeToFit];
如果你要展示的内容在一片区域中完全显示出来,这种方法可以达到目的。
但是如果你只显示特定的两行,或者几行,也就是说你不需要全部显示label的内容,上面的方法就无法达到了。
还好,有人写了一个现成的label控件供我们使用。TTTAttributedLabel