- (CGSize)sizeWithText:(NSString *)text andMaxSize:(CGSize)maxSize andFont:(UIFont *)font
{
NSDictionary *attr = @{NSFontAttributeName : font};
return [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attr context:nil].size;
}
// 下面这个方法是我在网上找的, 更好
=============================
-(CGFloat)heightForString:(NSString *)string fontSize:(float)fontSize andWidth:(float)width
{
if (string==nil) {
return 0;
}
float dev=[[[UIDevice currentDevice]systemVersion]floatValue];
if (dev>=7.0) {
if ((NSNull *)string == [NSNull null]) {
return 0;
}
if (string!=nil && string.length>1) {
UIFont * tfont = [UIFont systemFontOfSize:fontSize];
CGSize size = CGSizeMake(width,CGFLOAT_MAX);
NSDictionary * tdic = [NSDictionary dictionaryWithObjectsAndKeys:tfont,NSFontAttributeName,nil];
CGSize actualsize =[string boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesFontLeading attributes:tdic context:nil].size;
return actualsize.height;
}
return 0;
}
else {
if (string!=nil && string.length>1) {
CGSize sizeToFit = [string sizeWithFont:[UIFont systemFontOfSize:fontSize] constrainedToSize:CGSizeMake(width, CGFLOAT_MAX) lineBreakMode:NSLineBreakByWordWrapping];//此处的换行类型(lineBreakMode)可根据自己的实际情况进行设置
return sizeToFit.height;
}
return 0;
}
}