根据文字内容和设定maxSize计算文字的width、height
2015-09-19 21:45
337 查看
根据文字内容和设定maxSize计算文字的width、height
1.调用的方法
(CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options
attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context
2.方法的解释
2.1第一需要一个size 这个size是规定文字width,height的最大值
CGSize maxSize =
CGSizeMake(200,
MAXFLOAT);
在这段代码中maxSize的宽度规定为200,高度为最大,这样做的原理是系统会根据宽度和文字的大小计算这段文字的高度,然后返回。如果设定的宽度高度小于应有的宽度和高度那么返回的是你设定的宽度高度。
2.2 options
一般设为:NSStringDrawingUsesLineFragmentOrigin,这样结果计算准确。
2.3 attributes
#define font[UIFont systemFontOfSize:17]
NSDictionary *attrs =
@{NSFontAttributeName:font};
2.4 context
设置为nil
3.一般讲这个较长的方法封装便于调用
/**根据文字计算文字的size*/
- (CGSize)sizeWithText:(NSString *)text font:(UIFont *)font maxSize:(CGSize)maxSize{
NSDictionary *attrs =
@{NSFontAttributeName:font};
return [text
boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin
attributes:attrs context:nil].size;
}
1.调用的方法
(CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options
attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context
2.方法的解释
2.1第一需要一个size 这个size是规定文字width,height的最大值
CGSize maxSize =
CGSizeMake(200,
MAXFLOAT);
在这段代码中maxSize的宽度规定为200,高度为最大,这样做的原理是系统会根据宽度和文字的大小计算这段文字的高度,然后返回。如果设定的宽度高度小于应有的宽度和高度那么返回的是你设定的宽度高度。
2.2 options
一般设为:NSStringDrawingUsesLineFragmentOrigin,这样结果计算准确。
2.3 attributes
#define font[UIFont systemFontOfSize:17]
NSDictionary *attrs =
@{NSFontAttributeName:font};
2.4 context
设置为nil
3.一般讲这个较长的方法封装便于调用
/**根据文字计算文字的size*/
- (CGSize)sizeWithText:(NSString *)text font:(UIFont *)font maxSize:(CGSize)maxSize{
NSDictionary *attrs =
@{NSFontAttributeName:font};
return [text
boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin
attributes:attrs context:nil].size;
}
相关文章推荐
- Centos 7.1 最小安装+更新阿里源+Xfce桌面环境
- httpd虚拟主机,压缩机制,https实现,压力测试
- struct 字节对齐详解
- 对Git的认识
- test5.10
- Linux系统启动流程
- 加密过的VCD光盘(CDFS文件系统)隐藏的视频文件如何复制到硬盘
- 按之字形顺序打印二叉树
- 11个重要的数据库设计原则
- 编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现
- HDU 2027 统计元音 map
- Unity热更新专题(八)uLua示例Demo简析及SimpleFramework工作流程
- 配置Tomcat服务
- int*p[ ]与int(*p)[ ]的区别
- 不要在初始化方法和dealloc方法中使用Accessor Methods
- PHP爬虫 爬取污染数据实例
- IO流demo--【J2SE】
- 条款37:绝不重新定义继承而来的缺省参数值(Never redefine a function's inherited default parameter value)
- Labeling Balls(拓扑排序wa)
- 个人日记-安卓里OnPageChangeListener的坑爹