1. 程式人生 > >iOS-UILabel幾種自適應情況

iOS-UILabel幾種自適應情況

/**
1. 寬度不變的label,根據內容自適應高度

@param width 寬度
@param title 文字
@param font 字型
@return height
*/
+ (CGFloat)getHeightByWidth:(CGFloat)width title:(NSString )title font:(UIFont )font
{
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, width, 0)];
label.text = title;
label.font = font;
label.numberOfLines = 0;
[label sizeToFit];
CGFloat height = label.frame.size.height;
return height;
}

/**
2.高度不變的label,根據內容自適應寬度

@param title 文字
@param font 字型
@return width
*/
+ (CGFloat)getWidthWithTitle:(NSString )title font:(UIFont )font {
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 20, 0)];
label.text = title;
label.font = font;
[label sizeToFit];
return label.frame.size.width;
}

3.寬度不變的label,根據字型大小自適應

兩種方法

一:直接新增一句程式碼

lblName.adjustsFontSizeToFitWidth = YES;

二、引用方法

-(void)setFontSizeThatFits:(UILabel*)label{
CGFloat fontSizeThatFits;
[label.text sizeWithFont:label.font
minFontSize:8.0 //所需的最小字型
actualFontSize:&fontSizeThatFits
forWidth:label.bounds.size.width
lineBreakMode:NSLineBreakByWordWrapping];
label.font = [label.font fontWithSize:fontSizeThatFits];
}