zoukankan      html  css  js  c++  java
  • UILabel 调整行间距

    /*
     调整行间距
     */
    + (void)adjustLineSpacingOfLabel:(UILabel *)label to:(CGFloat)lineSpacing
    {
        NSString *textStr = label.text;
        if (textStr.length <= 0) {
            return;
        }
        
        NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:textStr];
        NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
        [paragraphStyle setLineSpacing:lineSpacing];
        [paragraphStyle setLineBreakMode:NSLineBreakByTruncatingTail];
        [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [textStr length])];
        label.attributedText = attributedString;
        [label sizeToFit];
    }
    
    + (CGSize)sizeOfMultiLineLabel:(NSString *)aLabelTextString font:(UIFont *)aLabelFont constrainedToSize:(CGSize)maxSize lineSpacing:(CGFloat)lineSpacing
    {
        if ([[[UIDevice currentDevice] systemVersion] floatValue] < 7.0) {
            //version < 7.0
            return [aLabelTextString sizeWithFont:aLabelFont
                                constrainedToSize:maxSize
                                    lineBreakMode:NSLineBreakByTruncatingTail];
        }
        else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
            //version >= 7.0
            //Return the calculated size of the Label
            NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
            [paragraphStyle setLineSpacing:lineSpacing];
            [paragraphStyle setLineBreakMode:NSLineBreakByWordWrapping];
            
            return [aLabelTextString boundingRectWithSize:maxSize
                                                  options:NSStringDrawingUsesLineFragmentOrigin
                                               attributes:@{NSFontAttributeName:aLabelFont, NSParagraphStyleAttributeName:paragraphStyle}
                                                  context:nil].size;
        }
        return CGSizeZero;
    }


  • 相关阅读:
    shell中逻辑与的两种表示方法
    Git学习之Git恢复进度
    RH318之域控服务器
    《征服C指针》读书笔记
    2013年:一个技术领导的启程
    sqlite的一个Unable to Open database file的坑爹错误
    我的2013——青春的躁动
    C/C++注册动态对象到Lu系统并进行运算符重载
    Geeks面试题:Min Cost Path
    Leetcode Gray Code
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/7293794.html
Copyright © 2011-2022 走看看