美文网首页
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