标签:
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);
标签:
原文地址:http://www.cnblogs.com/fshmjl/p/5025285.html