1,第一种通过已知宽度来计算它的最大高度使用sizeThatFits:方法如下
CGFloat titleW = cerX - titleX - 30;
CGFloat titleH = [_titleLabel sizeThatFits:CGSizeMake(titleW, MAXFLOAT)].height;
2,通过计算的方法
#pragma mark - 计算string的size
+ (CGSize)autosizeWithString:(NSString *)string fromSize:(CGSize)size andFont:(UIFont *)font
{
NSDictionary *attributes = @{ NSFontAttributeName : font};
return [string boundingRectWithSize:size
options:
NSStringDrawingUsesLineFragmentOrigin |
NSStringDrawingUsesFontLeading
attributes:attributes context:nil].size;
}
调用方法如下:
其中SPStringMode 函数所在文件,Font_CN为字体大小可根据情况修改,
CGSize size = [SPStringMode autosizeWithString:@"string" fromSize:CGSizeMake(200, MAXFLOAT) andFont:Font_CN(13)];
计算出来之后是CGSize格式的数据通过float取出即可
float infoHeight = size.height;
3,UILabel中的数据有时候无法控制大小同时有需要他显示全部而不是在高度不够时显示...的方法只需要使用一个属性就好了
lab.adjustsFontSizeToFitWidth = YES;