自适应一般分为2种 label和button的文字自适应
下面分情况说明
>比较古老的方法 (封装 传入字体大小 和文本内容)
label.numberOfLines = 0; //自动换行
label.font = [UIFont systemFontOfSize:14];
label.textAlignment = NSTextAlignmentLeft;
label.text = @"iOS之行在路上";
CGSize size = [self sizeWithString:label.text font:label.font]; //2个参数 文本和字体
label.bounds = CGRectMake(0, 0, size.width, size.height);
- (CGSize)sizeWithString:(NSString *)string font:(UIFont *)font
{
CGRect rect = [string boundingRectWithSize:CGSizeMake(200, 300) //限制最大的宽度和高度
options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin //采用换行模式
attributes:@{NSFontAttributeName:font} //传入字体
context:nil];
return rect.size;
}
>根据字体得到NSString的大小 sizeWithAttributes(这个方法)
UIFont *fnt = [UIFont fontWithName:@"HelveticaNeue" size:14];
self.TextLabel.font = fnt;
CGSize size = [self.TextLabel.text sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:fnt,NSFontAttributeName, nil]];
self.TextLabel.frame=CGRectMake(self.goodsImg.frame.origin.x+self.goodsImg.bounds.size.width+8, 69, size.width, 18);
>label 自适应方法
UILabel *label =[UILabel alloc] init];
label.frame =CGRectMake(0,0,width, 30);
label.numberOfLine=0;
label.text =@"11111111111111111111111111111111111";
[label sizeToFit];