码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-10-19 15:31:10      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   ar   使用   sp   div   

注: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+系统版本判断

标签:style   blog   color   io   os   ar   使用   sp   div   

原文地址:http://www.cnblogs.com/zw-h/p/4034909.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!