根据字符串如何自动计算出这些字符所占的宽和高: 首先,须要知道要显示的字体的样式,由于不一样大小的字体所占据的空间大小不同. 其次,要设置限制范围,例如一串字符能够显示成一行(较宽),也能够显示成多行(没行较窄).设置了范围,才能按照你想要的模式来显示. 最后改方法是工具方法,最好写在NSString类中,那么须要给NSString类写个扩展.若是某个类须要使用改方法,只需导入改分类的头文件便可工具
头文件:字体
#import <Foundation/Foundation.h>
@interface NSString (Extension)
/**
*返回值是该字符串所占的大小(width, height)
*font : 该字符串所用的字体(字体大小不同,显示出来的面积也不一样)
*maxSize : 为限制改字体的最大宽和高(若是显示一行,则宽高都设置为MAXFLOAT, 若是显示为多行,只需将宽设置一个有限定长值,高设置为MAXFLOAT)
*/
-(CGSize)sizeWithFont:(UIFont *)font maxSize:(CGSize)maxSize;
@end
#import "NSString+Extension.h"
@implementation NSString (Extension)
//返回字符串所占用的尺寸.
-(CGSize)sizeWithFont:(UIFont *)font maxSize:(CGSize)maxSize
{
NSDictionary *attrs = @{NSFontAttributeName : font};
return
[self boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
}
@end