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;
    }


  • 相关阅读:
    回溯法(背包问题和八皇后问题)
    wxidgets知识点
    计算机组成原理十套练习-白中英(B1 B2 B3 B4 B5 B6 B7B8 B9 B10)
    mbed sdk结构
    CC2540/2541软件开发指南
    GNU Utility
    迭代(iterate)和递归(recursion)的区别
    最长回文子串的求解(java)
    1、surrounded-regions
    mvn compile 出错 [ERROR] 不再支持源选项 1.5。请使用 1.6 或更高版本。
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/7293794.html
Copyright © 2011-2022 走看看