NSString-計算文本的寬度和高度
在實際的代碼應用中,我們常常需要計算,特定文本的寬度和高度。然后,根據長度和寬度值,動態的設置容器(如:UILabel)的長和寬來進行適應。
假如:我們有如下一段文本。
UIFont *theFont = [UIFont systemFontOfSize:14];
NSString *strText = @"這是一段很長的字符串,我們將根據要求的字體大小,來計算實際需要的寬度和高度!";
1.計算文本的寬度
NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithObject:[UIFont systemFontOfSize:14] forKey:NSFontAttributeName]; CGSize size = [strText boundingRectWithSize:CGSizeMake(MAXFLOAT, 0.0) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;
2.計算文本的高度
NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithObject:[UIFont systemFontOfSize:14] forKey:NSFontAttributeName]; CGSize size = [strText boundingRectWithSize:CGSizeMake(100.0, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;
這樣,用boundingRectWithSize:方法得到了,長度和寬度,就可以對容器的大小進行控制。關于NSLineBreakMode枚舉類型,如下所示,已經講的很清楚了,就不贅述了。
typedef NS_ENUM(NSInteger, NSLineBreakMode) {
NSLineBreakByWordWrapping =0,
NSLineBreakByCharWrapping,
NSLineBreakByClipping,
NSLineBreakByTruncatingHead,
NSLineBreakByTruncatingTail,
NSLineBreakByTruncatingMiddle
}NS_ENUM_AVAILABLE_IOS(6_0); </pre>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!