UIButton修改文字大小问题

时间:2023-03-08 16:11:39

一、问题描述

通过UIButton对象font属性设置文字大小,却发现该属性在2.0.3.0就已经被废弃,ios不建议使用。

UIButton修改文字大小问题

图1-1:点出UIButton对象的font属性提示被废弃

UIButton修改文字大小问题

图1-2:UIButton类的font属性被标记为NS_DEPRECATED_IOS

而UIButton对象没有text属性设置文字,后来想设置UIButton对象titleLabel.text设置文字,但UIButton的文字依然没有改变。

二、问题分析

在xcode3.0之后,建议使用UIButton对象的属性titleLabel设置文字大小。

UIButton修改文字大小问题

UIButton对象的文字有状态的,不同状态下文字内容,需要使用setTitle: forState:方法设置。

UIButton有些属性是需要状态的,例如设置按钮文字,有以下四种状态:

UIControlStateNormal
UIControlStateHighlighted
UIControlStateDisabled
UIControlStateSelected

例如:

[btn setTitle:@"按钮" forState:UIControlStateNormal];

三、问题解决

设置文字大小代码如下:

UIButton *btn = [[UIButton alloc]init];
CGFloat btnX=;
CGFloat btnY= labelY+labelH;
CGFloat btnW=(viewW-*btnX);
CGFloat btnH= ;
btn.frame=CGRectMake(btnX, btnY, btnW, btnH);
UIImage *btnImgNormal = [UIImage imageNamed:@"buttongreen.png"];
[btn setBackgroundImage:btnImgNormal forState:UIControlStateNormal];
UIImage *btnImgHighlighted = [UIImage imageNamed:@"buttongreen_highlighted.png"];
[btn setBackgroundImage:btnImgHighlighted forState:UIControlStateHighlighted];
[btn setTitle:@"下载" forState:UIControlStateNormal];
btn.titleLabel.font=[UIFont systemFontOfSize:16];
[self.view addSubview:btn];