实例化一个按钮
UIButton *Btn = [[UIButton alloc] init];
// 设置位置与大小,按设计原则转为变量
CGFloat BtnX = 12;
CGFloat BtnY = 30;
CGFloat BtnW = 40;
CGFloat BtnH = 40;
Btn.frame = CGRectMake(BtnX, BtnY, BtnW, BtnH);
设计一个按钮通常需要注意两种状态
1.normal(即未点击)
2.Highlighted(高亮)
一般情况下高亮自动继承未点击时的设置,我们在开发的时候,常需要在两种状态的时候替换图片达到点击时的视觉效果;
// 设置默认的背景
UIImage *normalImage = [UIImage imageNamed:@"buttongreen"];
[Btn setBackgroundImage:normalImage forState:UIControlStateNormal];
// 设置高亮的背景
UIImage *highImage = [UIImage imageNamed:@"buttongreen_highlighted"];
[Btn setBackgroundImage:highImage forState:UIControlStateHighlighted];
然后是添加文字与修改字体,这里有个陷阱
@property(nullable, nonatomic,readonly,strong) UILabel *titleLabel NS_AVAILABLE_IOS(3_0);
@property(nullable, nonatomic,readonly,strong) UIImageView *imageView NS_AVAILABLE_IOS(3_0);
官方文档中的关于button之所以能同时显示图片和文字的解释,
//不推荐直接获取按钮label来设置文字,因为它没有状态,可能会出现难以预料的现象
Btn.titleLabel.text = @"";
//设置按钮的文字推荐使用
[Btn setTitle:@"下载" forState:UIControlStateNormal];
然后就是设置字体
downloadBtn.titleLabel.font = [UIFont systemFontOfSize:14];
然后根据情况加载至任意父view中
[xView addSubview:Btn];