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;}
网友评论