iOS文本高度计算

文本高度计算:此方法适用于根据不一样的文字长短,设置与文字相同的size编程

//****************************************************************************************************************//字体

//***************************************************************************************************************//spa

//*********************************************计算文本高度 ********************************************************//code

//***************************************************************************************************************//图片

//**********************************************************************笨笨编程 **********************************//ip

//***************************************************************************************************************//ci

 

/**开发

*  param: string:须要计算的文本text文档

*  param: font :文本显示的字体大小string

*  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。

//******************************************参见iOS开发章鱼哥*********************************************************//

 //**************************************http://www.jianshu.com/p/155f9065f6d1****************************************//

相关文章
相关标签/搜索