首页 > 代码库 > 计算一段文字内容的size+系统版本判断

计算一段文字内容的size+系统版本判断

注:IOS7弃用sizeWithFont和sizeWithFont:constrainedToSize:lineBreakMode:方法

1.计算一行text内容的size

 CGSize timeSize;

if (isIOS7Height) {    timeSize = [_timeLabel.text sizeWithAttributes:@{NSFontAttributeName:kNameFont}];}    else {    timeSize = [_timeLabel.text sizeWithFont:kNameFont]; // IOS7不推荐使用该方法}

2.限定宽度,计算一段长内容(如正文)的size

CGSize contentSize;
CGFloat contentWidth = 200; // 限定正文的最大宽度
UIFont contentFont = [UIFont systemFontOfSize:16]; // 字体大小
if (isIOS7OrHeight) { NSDictionary *attrib = @{NSFontAttributeName: contentFont};
  // MAXFLOAT(值很大)为最大的高度,可以认为高度不限 contentSize
= [_dataDict[@"content"] boundingRectWithSize:CGSizeMake(contentWidth, MAXFLOAT) options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:attrib context:nil].size; } else { contentSize = [_dataDict[@"content"] sizeWithFont:kContentFont constrainedToSize:CGSizeMake(contentWidth, MAXFLOAT)];// IOS7不推荐使用该方法}

补充:IOS系统版本的判断

CGFloat version = [[[UIDevice currentDevice] systemVersion] floatValue];NSLog(@"%f", version);if (version >= 7.0) {    NSLog(@"ios7.0以上版本");}

还有另一种较为直接的方法是

#define kIsIOS7Later NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1

不过这种方法就没那么准确,因为NSFoundationVersionNumber的数值是有限的

计算一段文字内容的size+系统版本判断