分析:通过按钮的不同的点击事件状态来设置背景色,或者不同的状态设置背景图片
1.通过按钮的事件来设置背景色2.通过把颜色转换为UIImage来作为按钮不同状态下的背景图片3.同方法二,直接用图片设置不同状态下的背景图片
1.通过按钮的事件来设置背景色
1.通过按钮的事件来设置背景色
- (
void)viewDidLoad {
[
super viewDidLoad];
UIButton *button1 = [[UIButton alloc]
initWithFrame:CGRectMake(
50,
200,
100,
50)];
[button1
setTitle:@
"button1" forState:UIControlStateNormal];
button1.backgroundColor = [UIColor orangeColor];
[button1
addTarget:self
action:@selector(
button1BackGroundHighlighted:)
forControlEvents:UIControlEventTouchDown];
[button1
addTarget:self
action:@selector(
button1BackGroundNormal:)
forControlEvents:UIControlEventTouchUpInside];
[self.view
addSubview:button1];
}
- (
void)
button1BackGroundNormal:(UIButton *)sender
{
sender.backgroundColor = [UIColor orangeColor];
}
- (
void)
button1BackGroundHighlighted:(UIButton *)sender
{
sender.backgroundColor = [UIColor greenColor];
}
2.通过把颜色转换为UIImage来作为按钮不同状态下的背景图片
- (
void)viewDidLoad {
[
super viewDidLoad];
UIButton *button2 = [[
UIButton alloc] initWithFrame:
CGRectMake(
170,
200,
100,
50)];
[button2 setTitle:
@"button2" forState:
UIControlStateNormal];
[button2 setBackgroundImage:[
self imageWithColor:[
UIColor redColor]] forState:
UIControlStateNormal];
[button2 setBackgroundImage:[
self imageWithColor:[
UIColor grayColor]] forState:
UIControlStateHighlighted];
[
self.view addSubview:button2];
}
- (
UIImage *)imageWithColor:(
UIColor *)color {
CGRect rect =
CGRectMake(
0.0f,
0.0f,
1.0f,
1.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context =
UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color
CGColor]);
CGContextFillRect(context, rect);
UIImage *image =
UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
转载请注明原文地址: https://ju.6miu.com/read-21973.html