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下使用会计算不准确