Label自适应高度与长度

来源:互联网 发布:电脑无法连接网络wifi 编辑:程序博客网 时间:2024/05/16 15:43

//设置行间距等属性计算高度

+(CGSize)getAttributeStringSize:(NSString*)str Font:(UIFont*)setFont LineSpace:(CGFloat)spaceFloat LabelWidth:(CGFloat)labelWidth{


    NSAttributedString *attributStr=[[NSAttributedStringalloc]initWithString:str];

    NSMutableAttributedString *text = [[NSMutableAttributedStringalloc] initWithAttributedString:attributStr];

    NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStylealloc] init];

    [paragraphStyle setLineSpacing:spaceFloat];

    [text addAttribute:NSParagraphStyleAttributeNamevalue:paragraphStyle range:NSMakeRange(0, [strlength])];

    [text addAttribute:NSFontAttributeNamevalue:setFont range:NSMakeRange(0, text.length)];

    CGSize maxSize = CGSizeMake(labelWidth,MAXFLOAT);

    CGSize textSize = [textboundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigincontext:nil].size;

    return textSize;

    //label .[lable setAttributedText:text];

    //[lable sizeToFit];

}

//自动行高


+(CGSize)setSizeForLabelBycalculateString:(NSString*)str Font:(UIFont*)Font LabelWidth:(CGFloat)labelWidth{

    

    //    CGSize size=[str sizeWithFont:Font constrainedToSize:CGSizeMake(labelWidth, 10000) lineBreakMode:NSLineBreakByCharWrapping];//自动行高

    

    CGRect rect=[strboundingRectWithSize:CGSizeMake(labelWidth,10000) options:NSStringDrawingUsesLineFragmentOriginattributes:[NSDictionarydictionaryWithObjectsAndKeys:Font,NSFontAttributeName,nil]context:nil];

    return rect.size;

}


0 0