iOS之文字自适应

自适应一般分为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];

你可能感兴趣的:(iOS之文字自适应)