http://blog.csdn.net/jymn_chen/article/details/10949279
static CGFloat font = 20;
NSString *string = @"即可將點擊計算的發(fā)牢騷地方亮色簡單斐林試劑的禮服及所經(jīng)歷的說的發(fā)送發(fā)送到發(fā)送到是否撒旦法說的發(fā)送是是教室里老師代理費說兩句老司機福利局老師代理費說兩句老司機福利局受得了浮生將點擊計算的發(fā)牢騷地方亮色簡單斐林試劑的禮服及所經(jīng)歷的說的發(fā)送發(fā)送到發(fā)送到是否撒旦法說的發(fā)送是是教室里老師代理費說兩句老司機福利局受得了浮生六記的理發(fā)師老地方老師都累死了都法律手段法律手段里番精力使得分類是單例煩死了發(fā)牢騷發(fā)牢騷登陸發(fā)牢騷理發(fā)師累死了發(fā)牢騷 發(fā)送";
/**
同 5 的結果一樣
*/
CGRect frame1 = [string boundingRectWithSize:CGSizeMake(300, 1000) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:font]} context:nil];
NSLog(@"frame1 = %@", NSStringFromCGRect(frame1));
/**
同 3 的結果一樣
*/
CGRect frame2 = [string boundingRectWithSize:CGSizeMake(300, 1000) options:NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:font]} context:nil];
NSLog(@"frame2 = %@", NSStringFromCGRect(frame2));
/**
單行顯示的實際寬高(不包含上下行之間的間距) -- 同 4 比較
這個寬高不受到 size 的影響,返回的是文本真實的寬和高弓乙,如:size = CGSizeMake(300, 10)法焰,返回的
frame = {{0.91000000000000003, -1.498}, {5885.3547812499928, 13.061999999999999}}
還有一點要注意:這里計算的高度跷睦,不包含上下的間距
*/
CGRect frame3 = [string boundingRectWithSize:CGSizeMake(300, 10) options:NSStringDrawingUsesDeviceMetrics attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:font]} context:nil];
NSLog(@"frame3 = %@", NSStringFromCGRect(frame3));
/**
1氢烘,單行顯示的實際寬高(包含上下行之間的間距)-- 同 3 比較
2城侧,返回的寬度是 size 的寬度
*/
CGRect frame4 = [string boundingRectWithSize:CGSizeMake(300, 1000) options:NSStringDrawingTruncatesLastVisibleLine attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:font]} context:nil];
NSLog(@"frame4 = %@", NSStringFromCGRect(frame4));
/** 5
1蹦误,計算得到的是文本按 size 計算之后得到的大小
2,有包含行之間的距離
3胚嘲,返回的寬度作儿,是實際顯示所占用的寬度
4,在 `NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading`
的基礎上繼續(xù)擴充馋劈,效果也是一樣的
*/
CGRect frame5 = [string boundingRectWithSize:CGSizeMake(300, 1000) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:font]} context:nil];
NSLog(@"frame5 = %@", NSStringFromCGRect(frame5));
CGRect frame6 = [string boundingRectWithSize:CGSizeMake(300, 1000)
options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesDeviceMetrics attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:font]} context:nil];
NSLog(@"frame6 = %@", NSStringFromCGRect(frame6));
CGRect frame7 = [string boundingRectWithSize:CGSizeMake(300, 1000)
options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingTruncatesLastVisibleLine attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:font]} context:nil];
通過打印可以看出攻锰,NSStringDrawingUsesLineFragmentOrigin
可以獲取到文本的實際顯示大小,不管是否并上其他類型
1妓雾,獲取文本的實際大小
NSStringDrawingUsesLineFragmentOrigin
2娶吞,獲取單行的高度,不包含行間距NSStringDrawingUsesDeviceMetrics
3械姻,獲取單行的高度妒蛇,包含行間NSStringDrawingTruncatesLastVisibleLine
或NSStringDrawingUsesFontLeading
打印數(shù)據(jù)
frame1 = {{0, 0}, {285.31999999999999, 381.875}}**
frame2 = {{0, -4.82421875}, {300, 23.8671875}}**
frame3 = {{1.3, -2.1400000000000001}, {4404.6664843750004, 18.66}}**
frame4 = {{0, -4.82421875}, {300, 23.8671875}}**
frame5 = {{0, 0}, {285.31999999999999, 381.875}}**
frame6 = {{0, 0}, {285.31999999999999, 381.875}}**
frame7 = {{0, 0}, {285.31999999999999, 381.875}}**