学习封装

iOS_计算文本高度+计算文本宽度(封装类目:NSString+

2016-06-21  本文已影响475人  欧币杰昔

      在文本内容不一定的时候,文本框的大小没办法确定,文本框太小了会出现“...”,太大了会有很多空表区域,这时候如果可以计算文本内容需要多大的空间(宽、高),再来设置文本框的大小,就能解决此问题。

上代码:

/**

*  计算文本高度方法

*

*  @param text    要计算的文本内容

*  @param w        要显示的控件的宽度

*  @param fontsize 控件显示文本的字体大小

*

*  @return 返回计算的文本占用位置的大小(含宽,高)

*/

+(CGSize)calStrSize:(NSString*)text andWidth:(CGFloat)w andFontSize:(CGFloat)fontsize

{

CGSizesize=[text boundingRectWithSize:CGSizeMake(w,MAXFLOAT)options:NSStringDrawingUsesLineFragmentOriginattributes:@{NSFontAttributeName:[UIFontsystemFontOfSize:fontsize]}context:nil].size;

returnsize;

}

这里需要给定文本框的宽度以及字体大小,就能计算出文本框需要多少高度,这时候再来设置文本框的大小就OK了。

还有一种情况,文本内容少,不需要换行,但是需要计算文本会占用多少宽度

例如:一排按钮,如果每个按钮的宽度一样,那按钮标题较长的按钮,跟其他按钮之间的空格看起来就小了,甚至出现“...”,这样很不美观。

上代码:

/**

*  计算文本宽度方法

*

*  @param text    要计算的文本内容

*  @param fontsize 控件显示文本的字体大小

*

*  @return 返回计算的文本占用位置的大小(含宽,高)

*/

+(CGSize)calStrWith:(NSString*)text andFontSize:(CGFloat)fontsize

{

CGSizesize=[text boundingRectWithSize:CGSizeMake(MAXFLOAT,MAXFLOAT)options:NSStringDrawingUsesLineFragmentOriginattributes:@{NSFontAttributeName:[UIFontsystemFontOfSize:fontsize]}context:nil].size;

returnsize;

}

给定文本内容及字体大小,就能知道文本所占的宽度。

用在一排按钮上效果如图:

分享封装好的类:链接: http://pan.baidu.com/s/1o8u5Nyq  密码: 3qig

上一篇下一篇

猜你喜欢

热点阅读