//获取 label 高度
-(CGFloat)sizetofit:(NSString *)text
{
float dev=[[[UIDevice currentDevice]systemVersion]floatValue];
if (dev>=7.0) {
NSDictionary *dict=@{
NSFontAttributeName: [UIFont systemFontOfSize:12.0f]
};
CGRect frame=[text boundingRectWithSize:CGSizeMake(300, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading|NSStringDrawingTruncatesLastVisibleLine attributes:dict context:nil];
return frame.size.height;
}else{
CGSize size=[text sizeWithFont:[UIFont systemFontOfSize:12.0f] constrainedToSize:CGSizeMake(300, CGFLOAT_MAX) lineBreakMode:NSLineBreakByCharWrapping];
return size.height;
}
}
-(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;
}
}
这两段代码都可以,还需设置下label的 numberofline= 0 breakMode 以及 重新设置label.frame 如果在tableview上要重新设置cell的高度.
-(CGFloat)sizetofit:(NSString *)text
{
float dev=[[[UIDevice currentDevice]systemVersion]floatValue];
if (dev>=7.0) {
NSDictionary *dict=@{
NSFontAttributeName: [UIFont systemFontOfSize:12.0f]
};
CGRect frame=[text boundingRectWithSize:CGSizeMake(300, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading|NSStringDrawingTruncatesLastVisibleLine attributes:dict context:nil];
return frame.size.height;
}else{
CGSize size=[text sizeWithFont:[UIFont systemFontOfSize:12.0f] constrainedToSize:CGSizeMake(300, CGFLOAT_MAX) lineBreakMode:NSLineBreakByCharWrapping];
return size.height;
}
}
-(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;
}
}
这两段代码都可以,还需设置下label的 numberofline= 0 breakMode 以及 重新设置label.frame 如果在tableview上要重新设置cell的高度.