iOS 計(jì)算文本寬熔脂、高
#define kScreenWidth ([UIScreen mainScreen].bounds.size.width)
創(chuàng)建兩個(gè) UILabel 并賦值:
- (void)viewDidLoad {
[super viewDidLoad];
UILabel *widthLabel = [[UILabel alloc] init];
widthLabel.text = @"【北京高考文科狀元:高考是階層性的考試】出身外交官家庭的2017年北京高考文科狀元熊軒昂說(shuō),“高考是階層性的考試复罐,農(nóng)村地區(qū)的孩子,越來(lái)越難考上好學(xué)校趟紊。像我這種屬于中產(chǎn)階級(jí)的孩子氮双,衣食無(wú)憂,家長(zhǎng)都是知識(shí)分子霎匈,而且還生在北京這種大城市戴差,所以在教育資源上享受得天獨(dú)厚的條件,是很多外地或農(nóng)村的孩子完全享受不到的……現(xiàn)在的狀元铛嘱,通俗來(lái)講暖释,都是家里又好又厲害的∧牛”他的一席話激起網(wǎng)民熱烈討論……";
CGFloat height = [self textHeight:widthLabel.text textWidth:kScreenWidth];
widthLabel.frame = CGRectMake(0, 200, kScreenWidth, height);
widthLabel.layer.borderWidth = 1.0;
widthLabel.numberOfLines = 0;
widthLabel.font = [UIFont systemFontOfSize:12];
[self.view addSubview:widthLabel];
CGFloat labelHeight = 20;
UILabel *heightLabel = [[UILabel alloc] init];
heightLabel.text = @"北京高考文科狀元:高考是階層性的考試";
CGFloat width = [self textWidth:heightLabel.text textHeight:labelHeight];
heightLabel.frame = CGRectMake(0, 330, width, labelHeight);
heightLabel.layer.borderWidth = 1.0;
heightLabel.numberOfLines = 0;
heightLabel.font = [UIFont systemFontOfSize:12];
[self.view addSubview:heightLabel];
}
已知文本寬求高度:
- (CGFloat)textHeight:(NSString *)text textWidth:(CGFloat)width{
CGFloat stringWidth = 0;
CGSize size = CGSizeMake(width, MAXFLOAT);
if (text.length > 0) {
#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
stringWidth =[text
boundingRectWithSize:size
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:12]}
context:nil].size.height;
#else
stringWidth = [text sizeWithFont:self.font
constrainedToSize:size
lineBreakMode:NSLineBreakByCharWrapping].height;
#endif
}
return stringWidth;
}
已知文本高求寬度:
- (CGFloat)textWidth:(NSString *)text textHeight:(CGFloat)height {
CGFloat stringHeight = 0;
CGSize size = CGSizeMake(MAXFLOAT, height);
if (text.length > 0) {
#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
stringHeight =[text
boundingRectWithSize:size
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:12]}
context:nil].size.width;
#else
stringHeight = [text sizeWithFont:self.font
constrainedToSize:size
lineBreakMode:NSLineBreakByCharWrapping].width;
#endif
}
return stringHeight;
}
結(jié)果如圖所示: