美文网首页
iOS7中计算UILabel中字符串的高度

iOS7中计算UILabel中字符串的高度

作者: 流沙3333 | 来源:发表于2017-03-01 17:40 被阅读12次

    iOS6可以使用如下方式来获取字符串的size值

    size = [text sizeWithFont:font  constrainedToSize:size  lineBreakMode:NSLineBreakByCharWrapping];

    但此方法已经在iOS7中被废弃了,注意.

    //获取富文本的UILabel高度  iOS7

    - (CGSize)getStringRect:(NSString*)aString

    {

    CGSizesize;

    NSAttributedString* atrString = [[NSAttributedStringalloc] initWithString:aString];

    NSRangerange =NSMakeRange(0, atrString.length);

    NSDictionary* dic = [atrStringattributesAtIndex:0effectiveRange:&range];

    size = [aString  boundingRectWithSize:CGSizeMake(237, 200)options:NSStringDrawingUsesLineFragmentOriginattributes:diccontext:nil].size;

    returnsize;

    }

    //获取字符串的大小ios6

    - (CGSize)getStringRect_:(NSString*)aString

    {

    CGSizesize;

    UIFont*nameFont=[UIFontfontWithName:@"Helvetica"size:13];

    size=[aString sizeWithFont:nameFontconstrainedToSize:CGSizeMake(237, 200)lineBreakMode:NSLineBreakByCharWrapping];

    returnsize;

    }

    //宽度固定,获取新的高度,设置了label的attributedText,富文本

    + (CGSize) measureAttributedTextLabelSize:(UILabel*)label{

    CGSizeconstraint =CGSizeMake(label.frame.size.width,20000.0f);

    CGSizeactualSize = [label.attributedTextboundingRectWithSize:constraintoptions:NSStringDrawingUsesLineFragmentOrigincontext:nil].size;

    returnactualSize;

    }

    //宽度固定,获取新的高度,设置了label的text

    + (CGSize) measureLabelSize:(UILabel*)label{

    CGSizeconstraint =CGSizeMake(label.frame.size.width,20000.0f);

    CGSizeactualSize = [label.textsizeWithFont:label.fontconstrainedToSize:constraintlineBreakMode:label.lineBreakMode];

    returnactualSize;

    }

    相关文章

      网友评论

          本文标题:iOS7中计算UILabel中字符串的高度

          本文链接:https://www.haomeiwen.com/subject/nxlcgttx.html