UILabel实用设置行间距代码,直接上代码
swift:
fileprivate func createUI(){
let subLabel = UILabel()
subLabel.font = UIFont(name: "EuphemiaUCAS", size: 19.0)
subLabel.numberOfLines = 0
subLabel.backgroundColor = UIColor.orange
let subStr = "for-in 语句在循环开始前会调用集合表达式的 generate 方法来获取一个实现了 GeneratorType 协议的类型的值。接下来循环开始,反复调用该值的 next() 方法。如果其返回值不是 None,它将会被赋给“项”,然后执行循环体语句,执行完毕后回到循环开始处,继续重复这一过程;否则,既不会赋值也不会执行循环体语句,for-in 语句至此执行完毕。"
subLabel.attributedText = self .getAttributeStringWithString(subStr, lineSpace: 8.00)
subLabel.centerX = self.view.centerX
let fontSize = CGSize(width: kScreenW, height: subLabel.font.lineHeight)
let rect:CGSize = subStr.boundingRect(with: fontSize, options: NSStringDrawingOptions.usesLineFragmentOrigin, attributes: [NSFontAttributeName: subLabel.font], context: nil).size;
subLabel.frame = CGRect(x: 15, y: 100, width: kScreenW, height: 200)
subLabel.size = CGSize(width: rect.width-15, height: rect.height)
subLabel.sizeToFit()
self.view .addSubview(subLabel)
}
fileprivate func getAttributeStringWithString(_ string: String,lineSpace:CGFloat
) -> NSAttributedString{
let attributedString = NSMutableAttributedString(string: string)
let paragraphStye = NSMutableParagraphStyle()
//调整行间距
paragraphStye.lineSpacing = lineSpace
let rang = NSMakeRange(0, CFStringGetLength(string as CFString!))
attributedString .addAttribute(NSParagraphStyleAttributeName, value: paragraphStye, range: rang)
return attributedString
}
oc:
UILabel * subLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, MainLabel.bottom+15*__kRatio, __kScreenWidth, 40)];
subLabel.text = @"for-in 语句在循环开始前会调用集合表达式的 generate 方法来获取一个实现了 GeneratorType 协议的类型的值。接下来循环开始,反复调用该值的 next() 方法。如果其返回值不是 None,它将会被赋给“项”,然后执行循环体语句,执行完毕后回到循环开始处,继续重复这一过程;否则,既不会赋值也不会执行循环体语句,for-in 语句至此执行完毕。";
// 调整行间距
subLabel.attributedText = [self getAttributedStringWithString:subLabel.text lineSpace:8];
subLabel.textColor = kColorA6A6A6;
subLabel.font = _kFontMain;
subLabel.numberOfLines =0;
subLabel.textAlignment = NSTextAlignmentCenter;
subLabel.size = [subLabel.text boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, subLabel.font.lineHeight)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName : subLabel.font}
context:nil].size;
subLabel.centerX = MainLabel.centerX;
[subLabel sizeToFit];
[_topView addSubview:subLabel];
// 调整行间距
-(NSAttributedString *)getAttributedStringWithString:(NSString *)string lineSpace:(CGFloat)lineSpace {
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:string];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineSpacing = lineSpace; // 调整行间距
NSRange range = NSMakeRange(0, [string length]);
[attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:range];
return attributedString;
}