根據字符串如何自動計算出這些字符所佔的寬和高: 首先,須要知道要顯示的字體的樣式,由於不一樣大小的字體所佔據的空間大小不同. 其次,要設置限制範圍,例如一串字符能夠顯示成一行(較寬),也能夠顯示成多行(沒行較窄).設置了範圍,才能按照你想要的模式來顯示. 最後改方法是工具方法,最好寫在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