iOS 获取 UILabel串的宽度
Posted 活最好的自己
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 获取 UILabel串的宽度相关的知识,希望对你有一定的参考价值。
1 /** 2 * 获取高度 3 * 4 * @param font 目标字体 5 * @param width 约束宽度 6 * 7 * @return 目标高度 8 */ 9 - (CGFloat)ptv_heightWithFont:(UIFont *)font constrainedToWidth:(CGFloat)width { 10 UIFont *textFont = font ? font : [UIFont systemFontOfSize:[UIFont systemFontSize]]; 11 12 CGSize textSize; 13 14 #if __IPHONE_OS_VERSION_MIN_REQUIRED < 70000 15 if ([self respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)]) { 16 NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init]; 17 paragraph.lineBreakMode = NSLineBreakByWordWrapping; 18 NSDictionary *attributes = @{NSFontAttributeName: textFont, 19 NSParagraphStyleAttributeName: paragraph}; 20 textSize = [self boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX) 21 options:(NSStringDrawingUsesLineFragmentOrigin | 22 NSStringDrawingTruncatesLastVisibleLine) 23 attributes:attributes 24 context:nil].size; 25 } else { 26 textSize = [self sizeWithFont:textFont 27 constrainedToSize:CGSizeMake(width, CGFLOAT_MAX) 28 lineBreakMode:NSLineBreakByWordWrapping]; 29 } 30 #else 31 NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init]; 32 paragraph.lineBreakMode = NSLineBreakByWordWrapping; 33 NSDictionary *attributes = @{NSFontAttributeName: textFont, 34 NSParagraphStyleAttributeName: paragraph}; 35 textSize = [self boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX) 36 options:(NSStringDrawingUsesLineFragmentOrigin | 37 NSStringDrawingTruncatesLastVisibleLine) 38 attributes:attributes 39 context:nil].size; 40 #endif 41 42 return ceil(textSize.height); 43 }
以上是关于iOS 获取 UILabel串的宽度的主要内容,如果未能解决你的问题,请参考以下文章
iOS UILabel讲解以及根据字符串长度自动适应宽度和高度
iOS-UILabel根据文本字体大小计算label宽度;以及自适应高度