ios之计算UILabel的高度
2017-08-18 12:36
274 查看
计算默认字体间距Label的宽高
以下代码是计算Label的宽高。首先定义枚举,
typedef NS_ENUM(NSInteger, LIMIT) { LIMITHEIGHT = 0, LIMITWIDTH = 1 };
方法描述
/** 计算Lable 的宽到 @param string Label上的字符串 @param font Label的字体大小 @param conditions 限制宽或者高, 如果是求高度,则限制宽。 如果是求宽度,则限制高 @param num 限制宽或者高; 如果限制宽为100,则num = 100, 如果限制高为100, 则num = 100 @return 返回值 */ +(CGFloat)gettextHeigthOrWidth:(NSString *)string andFont:(CGFloat)font andLimit:(LIMIT)conditions andNum:(CGFloat)num;
方法实现
+ (CGFloat)gettextHeigthOrWidth:(NSString *)string andFont:(CGFloat)font andLimit:(LIMIT)conditions andNum:(CGFloat)num { UIFont *fontName = WSFONT(font); NSDictionary *dict = @{NSFontAttributeName:fontName}; CGSize textSize; if (conditions == LIMITWIDTH) { textSize = CGSizeMake(num, CGFLOAT_MAX); }else{ textSize = CGSizeMake(CGFLOAT_MAX, num); } CGRect rect = [string boundingRectWithSize:textSize options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:dict context:nil]; if (conditions == LIMITWIDTH) { return rect.size.width; }else{ return rect.size.height; } }
计算设置了行间距的Label的高宽
方法描述/** 计算有行间距字间距的Label的高度 @param string 要计算的文本内容 @param font 字体大小 @param conditions 限制的宽高。 如果求高度,则限制宽度,如果求宽度,则限制高度 @param num 要限制的宽高的大小 @param lineSpac 行间距 @param wordSpac 字间距 @return 返回值 */ + (CGFloat)gettextHeigthOrWidth:(NSString *)string andFont:(UIFont *)font andLimit:(LIMIT)conditions andNum:(CGFloat)num andLineSpac:(CGFloat)lineSpac andWordSpac:(CGFloat)wordSpac;
方法实现
+ (CGFloat)gettextHeigthOrWidth:(NSString *)string andFont:(UIFont *)font andLimit:(LIMIT)conditions andNum:(CGFloat)num andLineSpac:(CGFloat)lineSpac andWordSpac:(CGFloat)wordSpac { NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init]; paraStyle.lineBreakMode = NSLineBreakByCharWrapping; paraStyle.alignment = NSTextAlignmentLeft; paraStyle.lineSpacing = lineSpac; NSDictionary *dic = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:paraStyle ,NSKernAttributeName:@(wordSpac)}; CGSize size; if (conditions == LIMITWIDTH) { size = CGSizeMake(num, CGFLOAT_MAX); }else{ size = CGSizeMake(CGFLOAT_MAX, num); } CGSize textSize = [string boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size; if (conditions == LIMITWIDTH ) { return textSize.width; }else{ return textSize.height; } }
相关文章推荐
- 八,iOS当UILabel文字不固定时计算label的高度
- iOS UILabel设置行间距和字间距并计算高度
- iOS UILabel设置行间距和字间距并计算高度
- iOS中的UILabel自动计算高度和换行
- iOS 使用 boundingRectWithSize: 计算 UILabel 高度错误的解决方案
- iOS UILabel设置行间距和字间距并计算高度
- iOS UILabel设置行间距和字间距并计算高度
- iOS开 4000 发时关于UILabel文本高度和宽度的计算问题(单行、多行)
- IOS 中UITextField,UITextView,UILabel 根据内容来计算高度
- IOS开发中UILabel单行、多行文本计算高度、宽度的技巧
- ios 根据文字数量计算UILabel高度
- iOS开发技巧之:UILabel设置行间距和字间距并计算高度
- iOS NSString 没有去除首尾空格,换行符,空字符--导致UIlabel不能正确计算换行后的动态高度
- 【iOS】UILabel多行文本的高度计算
- iOS UILabel 设置内容的间距及高度的计算示例
- iOS UILabel设置行间距和字间距并计算高度
- iOS UILabel根据内容动态计算高度
- [iOS学习]关于UILabel计算多行高度以及显示的问题
- IOS开发中UILabel单行、多行文本计算高度、宽度的技巧
- iOS UILabel 设置 行间距 和 字间距 并计算高度