转自:http://blog.csdn.net/senyangs/article/details/21078611
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下使用会计算不准确