iOS 动态计算Label富文本高度

2017-03-20 19:30:47来源:CSDN作者:kst_123人点击

- (NSAttributedString *)attributedTextArray:(NSArray *)texts

                                 textColors:(NSArray *)colors

                                  textfonts:(NSArray *)fonts

                                lineSpacing:(CGFloat)l_spacing{

    if(texts.count ==0){

        returnnil;

    }

    

    NSMutableAttributedString *resultAttributedStr = [[NSMutableAttributedStringalloc] init];

    

    for(int i=0; i<texts.count; i++)

    {

        NSString *text = texts[i];

        NSMutableAttributedString *mAttributedStr = [[NSMutableAttributedStringalloc] initWithString:text];

        [mAttributedStr addAttribute:NSForegroundColorAttributeNamevalue:colors[i] range:NSMakeRange(0, text.length)];

        [mAttributedStr addAttribute:NSFontAttributeNamevalue:fonts[i] range:NSMakeRange(0, text.length)];

        [resultAttributedStr appendAttributedString:mAttributedStr];

    }

    

    if(l_spacing>0){

        NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStylealloc] init];

        paragraphStyle.lineSpacing = l_spacing;

        [resultAttributedStr addAttribute:NSParagraphStyleAttributeNamevalue:paragraphStyle range:NSMakeRange(0, resultAttributedStr.length)];

    }

    

    return resultAttributedStr;


}

- (CGSize)sizeLabelWidth:(CGFloat)width

          attributedText:(NSAttributedString *)attributted{

    if(width<=0){

        returnCGSizeZero;

    }

    

    UILabel *lab = [[UILabelalloc] initWithFrame:CGRectMake(0,0, width, MAXFLOAT)];

    lab.attributedText = attributted;

    lab.numberOfLines =0;

    

    CGSize labSize = [labsizeThatFits:lab.bounds.size];

    return labSize;

}


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台