iOS7中用以下方法

- (CGSize)sizeWithAttributes:(NSDictionary *)attrs;

替代过时的iOS6中的- (CGSize)sizeWithFont:(UIFont *)font 方法


    // iOS7_API_根据文字 字数动态确定Label宽高

    // 设置Label的字体 HelveticaNeue  Courier
UIFont *fnt = [UIFont fontWithName:@"HelveticaNeue" size:24.0f];
_nameLabel.font = fnt;
// 根据字体得到NSString的尺寸
CGSize size = [_nameLabel.text sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:fnt,NSFontAttributeName, nil]];
// 名字的H
CGFloat nameH = size.height;
// 名字的W
CGFloat nameW = size.width;
_nameLabel.frame = CGRectMake(0, 0, nameW,nameH);

iOS7中用以下方法boundingRectWithSize:options:attributes:context:替代过时的iOS6中的sizeWithFont:constrainedToSize:lineBreakMode:方法


// 4,根据正文内容多少,动态确定正文content的frame

    // 宽度W
CGFloat contentW = self.bounds.size.width - _content.frame.origin.x - kMargin;
// label的字体 HelveticaNeue Courier
UIFont *fnt = [UIFont fontWithName:@"HelveticaNeue" size:18.0f];
_content.font = fnt;
_content.numberOfLines = 0;
_content.lineBreakMode = NSLineBreakByWordWrapping;
// iOS7中用以下方法替代过时的iOS6中的sizeWithFont:constrainedToSize:lineBreakMode:方法
CGRect tmpRect = [_content.text boundingRectWithSize:CGSizeMake(contentW, 1000) options:NSStringDrawingUsesLineFragmentOrigin attributes:[NSDictionary dictionaryWithObjectsAndKeys:fnt,NSFontAttributeName, nil] context:nil]; // 高度H
CGFloat contentH = tmpRect.size.height;
NSLog(@"调整后的显示宽度:%f,显示高度:%f"contentW,contentH);
_content.frame = CGRectMake(0, 0, contentW,contentH);

附:API文档参考

boundingRectWithSize:options:attributes:context:

Calculates and returns the bounding rect for the receiver drawn using the given options and display characteristics, within the specified rectangle in the current graphics context.

- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context

Parameters

size

The size of the rectangle to draw in.

options

String drawing options.

attributes

A dictionary of text attributes to be applied to the string. These are the same attributes that can be applied to anNSAttributedString object, but in the case ofNSString objects, the attributes apply to the entire string, rather than ranges within the string.

context

The string drawing context to use for the receiver, specifying minimum scale factor and tracking adjustments.

Return Value

The bounding rect for the receiver drawn using the given options and display characteristics. The rect origin returned from this method is the first glyph origin.

Discussion

To correctly draw and size multi-line text, pass NSStringDrawingUsesLineFragmentOrigin in the options parameter.

This method returns fractional sizes (in the size component of the returnedCGRect); to use a returned size to size views, you must raise its value to the nearest higher integer using theceil function.

This method returns the actual bounds of the glyphs in the string. Some of the glyphs (spaces, for example) are allowed to overlap the layout constraints specified by the size passed in, so in some cases the width value of the size component of the returned CGRect can exceed the width value of the size parameter.

Availability

  • Available in iOS 7.0 and later.

See Also

  • – drawInRect:withAttributes:

Declared In

NSStringDrawing.h

最新文章

  1. sqlserver多文件组数据库的备份和还原实战
  2. UVA - 11235 Frequent values
  3. centos6.6编译安装lnmp系列之PHP
  4. lintcode 中等题:Majority number II 主元素 II
  5. awk实践积累
  6. VC断点不可用的问题
  7. 怎样使用jsp实现header和footer与网页内容的分离
  8. jquery通过attr取html里自定义属性原来这么方便啊
  9. Angular实现购物车计算
  10. 游戏UI框架设计(一) : 架构设计理论篇
  11. MySQL flashback 功能
  12. 【mysql】Date和String的互相转换(DATE_FORMAT & STR_TO_DATE)
  13. Linux第七节课学习笔记
  14. 使用solr进行配置文件
  15. 复盘价值1000万的腾讯云硬盘固件"BUG"
  16. PyQt5--StatusBar
  17. 结对编程——四则运算器(UI第十组)
  18. 【比赛】NOIP2017 小凯的疑惑
  19. js in
  20. log4cplus基本用法

热门文章

  1. PAT 甲级 1005. Spell It Right (20) 【字符串】
  2. 【css学习整理】浮动,清除
  3. css3线性渐变兼容
  4. python- 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化
  5. test pic重复
  6. sql中使用timestamp增量抽取数据
  7. Workerman安装流程
  8. 关于JDK安装javac失效的几个问题。
  9. jsp日期插件My97DatePicker 强大的日期控件 使用方便简单(转)
  10. iOS UINavgationController、 UINavigationBar、 UINavigationItem关系分析