设置UIButton高亮状态下的背景颜色

1,通过按钮的事件来设置背景色

- (void)viewDidLoad {[superviewDidLoad];UIButton *button1 = [[UIButton alloc]initWithFrame:CGRectMake(50,200,100,50)];[button1setTitle:@"button1"forState:UIControlStateNormal];button1.backgroundColor = [UIColor orangeColor];[button1addTarget:selfaction:@selector(button1BackGroundHighlighted:)forControlEvents:UIControlEventTouchDown];[button1addTarget:selfaction:@selector(button1BackGroundNormal:)forControlEvents:UIControlEventTouchUpInside];[self.viewaddSubview:button1];}//  button1普通状态下的背景色- (void)button1BackGroundNormal:(UIButton *)sender{sender.backgroundColor = [UIColor orangeColor];}//  button1高亮状态下的背景色- (void)button1BackGroundHighlighted:(UIButton *)sender{sender.backgroundColor = [UIColor greenColor];}

2,通过把颜色转换为UIImage来作为按钮不同状态下的背景图片

- (void)viewDidLoad {[superviewDidLoad];UIButton*button2 = [[UIButtonalloc] initWithFrame:CGRectMake(170,200,100,50)];[button2 setTitle:@"button2"forState:UIControlStateNormal];[button2 setBackgroundImage:[selfimageWithColor:[UIColorredColor]] forState:UIControlStateNormal];[button2 setBackgroundImage:[selfimageWithColor:[UIColorgrayColor]] forState:UIControlStateHighlighted];[self.view addSubview:button2];}//  颜色转换为背景图片- (UIImage*)imageWithColor:(UIColor*)color {CGRectrect =CGRectMake(0.0f,0.0f,1.0f,1.0f);UIGraphicsBeginImageContext(rect.size);CGContextRefcontext =UIGraphicsGetCurrentContext();CGContextSetFillColorWithColor(context, [colorCGColor]);CGContextFillRect(context, rect);UIImage*image =UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();returnimage;}

你可能感兴趣的:(设置UIButton高亮状态下的背景颜色)