iOS文本高度计算
2015-07-20 17:20
483 查看
文本高度计算:此方法适用于根据不同的文字长短,设置与文字相同的size
//****************************************************************************************************************//
//***************************************************************************************************************//
//*********************************************计算文本高度 ********************************************************//
//***************************************************************************************************************//
//**********************************************************************笨笨编程 **********************************//
//***************************************************************************************************************//
/**
* param: string:需要计算的文本text
* param: font :文本显示的字体大小
* param: maxSize:文本显示的范围
* return: 文本占用的真实宽高
*/
- (CGSize)sizeWithString:(NSString *)string font:(UIFont *)font maxSize:(CGSize)maxSize{
NSDictionary *dict = @{NSFontAttributeName : font};
CGSize size = [string boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:dict context:nil].size;
return size;
}
//****************************************************************************************************************//
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context NS_AVAILABLE_IOS(7_0);
typedef NS_OPTIONS(NSInteger, NSStringDrawingOptions) {
NSStringDrawingTruncatesLastVisibleLine = 1 << 5, // 如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略号。(Truncates and adds the ellipsis character to the last visible line if the text doesn't fit into the bounds specified. Ignored if NSStringDrawingUsesLineFragmentOrigin is not also set.)
NSStringDrawingUsesLineFragmentOrigin = 1 << 0, // 该选项被忽略(The specified origin is the line fragment origin, not the base line origin)
NSStringDrawingUsesFontLeading = 1 << 1, // 计算行高时使用行间距,字体大小+行间距 = 行高(Uses the font leading for calculating line heights)
NSStringDrawingUsesDeviceMetrics = 1 << 3, //使用图片上的文字大小代替印刷上的文字大小(Uses image glyph bounds instead of typographic bounds)
} NS_ENUM_AVAILABLE_IOS(6_0);
//******************************************参见iOS开发章鱼哥*********************************************************//
//**************************************http://www.jianshu.com/p/155f9065f6d1****************************************//
//****************************************************************************************************************//
//***************************************************************************************************************//
//*********************************************计算文本高度 ********************************************************//
//***************************************************************************************************************//
//**********************************************************************笨笨编程 **********************************//
//***************************************************************************************************************//
/**
* param: string:需要计算的文本text
* param: font :文本显示的字体大小
* param: maxSize:文本显示的范围
* return: 文本占用的真实宽高
*/
- (CGSize)sizeWithString:(NSString *)string font:(UIFont *)font maxSize:(CGSize)maxSize{
NSDictionary *dict = @{NSFontAttributeName : font};
CGSize size = [string boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:dict context:nil].size;
return size;
}
//****************************************************************************************************************//
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context NS_AVAILABLE_IOS(7_0);
//size: 用于计算文本绘制时占据的矩形块。日常使用经常是宽度设置为一个固定值,然后高度为CGFLOAT_MAX(无限大的一个数值)
//options:文本绘制时附加选项,可以附加使用。 这里是官方API文档
typedef NS_OPTIONS(NSInteger, NSStringDrawingOptions) {
NSStringDrawingTruncatesLastVisibleLine = 1 << 5, // 如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略号。(Truncates and adds the ellipsis character to the last visible line if the text doesn't fit into the bounds specified. Ignored if NSStringDrawingUsesLineFragmentOrigin is not also set.)
NSStringDrawingUsesLineFragmentOrigin = 1 << 0, // 该选项被忽略(The specified origin is the line fragment origin, not the base line origin)
NSStringDrawingUsesFontLeading = 1 << 1, // 计算行高时使用行间距,字体大小+行间距 = 行高(Uses the font leading for calculating line heights)
NSStringDrawingUsesDeviceMetrics = 1 << 3, //使用图片上的文字大小代替印刷上的文字大小(Uses image glyph bounds instead of typographic bounds)
} NS_ENUM_AVAILABLE_IOS(6_0);
//attributes:文字的属性。必须设置字体的大小,注意这时是字典下的UIFont类型的。 //comtext: context上下文,常设为nil。[/code]
//******************************************参见iOS开发章鱼哥*********************************************************//
//**************************************http://www.jianshu.com/p/155f9065f6d1****************************************//
相关文章推荐
- IOS中系统唯一标识ID
- iOS 给照片加水印,文字
- IOS 初始化方法的总结(initWithxxx)
- layoutSubviews
- iOS 渐变色
- 更新ios固件
- ios学习之 方法中的参数为引用类型
- iOS开发-AutoresizingMask
- iOS OC04_属性
- iOS开发的22个奇葩技巧
- iPhone中使用NSLocalizedString实现国际化
- iOS OC03_继承,便利构造器,初始化方法
- iOS OC02_可见度,方法
- ios-block
- iOS 高德地图API不能定位及INVALID_USER_SCODE
- iOS OC01_类和对象
- iOS编码规范文档
- 调试iOS 已经发布代码 Crash 文件分析出出错对应代码
- [iOS]14个Xcode中常用的快捷键操作
- 免费的iOS企业证书打包服务