Swift3.0 设置UILabel文件行间距 含oc版

本文提供了Swift3.0和Objective-C两种语言实现设置UILabel行间距的代码示例,帮助开发者快速调整UI元素的显示效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值