1.定义一个UILable
self.view.backgroundColor =[UIColor whiteColor];
NSString *str=@"目前支持以下站点";
UILabel *notice=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 200, 20)];
//文本文字自适应大小
notice.adjustsFontSizeToFitWidth = YES;
notice.text=str;
notice.textAlignment=NSTextAlignmentCenter;
CGSize sizeThatFit=[notice sizeThatFits:CGSizeZero];
notice.center = CGPointMake(self.view.bounds.size.width/2, 20) ;
notice.textColor=[UIColor whiteColor];
notice.backgroundColor=[UIColor blackColor];
[self.view addSubview:notice];得到的效果如下图
自适应大小ios7以后有两种可行的方案:
1.sizeThatFits
NSString *str=@"目前支持以下站点";
UILabel *notice=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 200, 20)];
//文本文字自适应大小
notice.adjustsFontSizeToFitWidth = YES;
notice.text=str;
notice.textAlignment=NSTextAlignmentCenter;
//使用sizeThatFit计算lable大小
CGSize sizeThatFit=[notice sizeThatFits:CGSizeZero];
//重新指定frame
notice.frame=CGRectMake(0, 0, sizeThatFit.width, sizeThatFit.height);
notice.center = CGPointMake(self.view.bounds.size.width/2, kL20) ;
notice.textColor=[UIColor whiteColor];
notice.backgroundColor=[UIColor blackColor];
[self.view addSubview:notice];效果图:
2.sizeToFit
NSString *str=@"目前支持以下站点";
UILabel *notice=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 200, 20)];
//文本文字自适应大小
notice.adjustsFontSizeToFitWidth = YES;
notice.text=str;
notice.textAlignment=NSTextAlignmentCenter;
[notice sizeToFit];//使用sizeToFit
notice.center = CGPointMake(self.view.bounds.size.width/2, kL20) ;
notice.textColor=[UIColor whiteColor];
notice.backgroundColor=[UIColor blackColor];
[self.view addSubview:notice];
效果图:
注意:1.计算lable大小的时候需要先进行lable的text赋值
2.如果要将lable居中显示的话,lable.center属性的设置必须放在设置新大小之后,不然会出现不居中的情况
3.ios7之前还有其他的方法
cgSize=[str sizeWithFont:font];
这个方法是NSString的方法,听说在ios7下使用会计算不准确
本文介绍iOS开发中UILabel如何实现文本自适应宽度,并调整字体大小以适应屏幕尺寸变化。提供了三种方法:使用sizeThatFits调整Label大小、使用sizeToFit方法自动调整Label大小以及通过计算字符串尺寸来设置Label尺寸。
2625

被折叠的 条评论
为什么被折叠?



