- 按钮的功能比较多,既能显示文字,又能显示图片,还能随时调整内部图片和文字的位置
- 按钮也是一种容器,在这一点上跟UIView类似
按钮的三种状态
- normal(普通状态)
- 默认情况(Default)
- 对应的枚举常量:UIControlStateNormal
- highlighted(高亮状态)
- 按钮被按下去的时候(手指还未松开)
- 对应的枚举常量:UIControlStateHighlighted
- disabled(失效状态,不可用状态)
- 如果enabled属性为NO,就是处于disable状态,代表按钮不可以被点击
- 对应的枚举常量:UIControlStateDisabled
*要为按钮设置三种状态都不同的外观,那么按钮的Type要设置为Custom
UIButton的常见设置
set
- - (void)setTitle:(NSString *)title forState:(UIControlState)state;
- 设置按钮的文字
- - (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;
- 设置按钮的文字颜色
- - (void)setImage:(UIImage *)image forState:(UIControlState)state;
- 设置按钮内部的小图片
- - (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;
- 设置按钮的背景图片
- btn.titleLabel.font = [UIFont systemFontOfSize:13];
- 设置按钮的文字字体(需要拿到按钮内部的label来设置)
get
- - (NSString *)titleForState:(UIControlState)state;
- 获得按钮的文字
- - (UIColor *)titleColorForState:(UIControlState)state;
- 获得按钮的文字颜色
- - (UIImage *)imageForState:(UIControlState)state;
- 获得按钮内部的小图片
- - (UIImage *)backgroundImageForState:(UIControlState)state;
- 获得按钮的背景图片
代码创建
// 创建按钮
UIButton *btn = [[UIButton alloc] init];
// 设置背景图片
[btn setBackgroundImage:[UIImage imageNamed:image] forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:highImage] forState:UIControlStateHighlighted];
[btn setBackgroundImage:[UIImage imageNamed:disableImage] forState:UIControlStateDisabled];
// 设置位置和尺寸
btn.frame = frame;
// 监听按钮点击
[btn addTarget:self action:action forControlEvents:UIControlEventTouchUpInside];