iOS7中用以下方法
- (CGSize)sizeWithAttributes:(NSDictionary *)attrs;
替代过时的iOS6中的- (CGSize)sizeWithFont:(UIFont *)font 方法
1 // iOS7_API_根据文字 字数动态确定Label宽高
2
3
4 // 设置Label的字体 HelveticaNeue Courier
5 UIFont *fnt = [UIFont fontWithName:
@"HelveticaNeue" size:
24.0f];
6 _nameLabel.font =
fnt;
7 // 根据字体得到NSString的尺寸
8 CGSize size =
[_nameLabel.text sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:fnt,NSFontAttributeName, nil]];
9 // 名字的H
10 CGFloat nameH =
size.height;
11 // 名字的W
12 CGFloat nameW =
size.width;
13 _nameLabel.frame = CGRectMake(
0,
0, nameW,nameH);
iOS7中用以下方法boundingRectWithSize:options:attributes:context:替代过时的iOS6中的sizeWithFont:constrainedToSize:lineBreakMode:方法
1 // 4,根据正文内容多少,动态确定正文content的frame
2
3 // 宽度W
4 CGFloat contentW = self.bounds.size.width - _content.frame.origin.x -
kMargin;
5 // label的字体 HelveticaNeue Courier
6 UIFont *fnt = [UIFont fontWithName:
@"HelveticaNeue" size:
18.0f];
7 _content.font =
fnt;
8 _content.numberOfLines =
0;
9 _content.lineBreakMode =
NSLineBreakByWordWrapping;
10 // iOS7中用以下方法替代过时的iOS6中的sizeWithFont:constrainedToSize:lineBreakMode:方法
11 CGRect tmpRect = [_content.text boundingRectWithSize:CGSizeMake(contentW,
1000) options:NSStringDrawingUsesLineFragmentOrigin attributes:[NSDictionary dictionaryWithObjectsAndKeys:fnt,NSFontAttributeName, nil] context:nil];
12
13 // 高度H
14 CGFloat contentH =
tmpRect.size.height;
15 NSLog(
@"调整后的显示宽度:%f,显示高度:%f"contentW,contentH);
16 _content.frame = CGRectMake(
0,
0, contentW,contentH);
转载于:https://www.cnblogs.com/fshmjl/p/5025285.html