我正在以编程方式创建按钮.我想改变按钮背景颜色,同时再次触摸内部,它必须在抬起我的手指后恢复其通常的颜色.....
nine = [UIButton buttonWithType:UIButtonTypeCustom];
[nine setFrame:CGRectMake(15, 105, 65, 40)];
[nine setTitle:@"9" forState:UIControlStateNormal];
[nine setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[nine setBackgroundColor:[UIColor cyanColor]];
[nine addTarget:self action:@selector(clickDigit:) forControlEvents:UIControlEventTouchUpInside];
[nine addTarget:self action:@selector(changeButtonBackGroundColor:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:nine];
Run Code Online (Sandbox Code Playgroud)
//改变背景颜色
-(void)changeButtonBackGroundColor:(id) sender
{
[nine setBackgroundColor:[UIColor redColor]];
}
Run Code Online (Sandbox Code Playgroud)
这里创建了changeBackgroundColor方法来改变该按钮的颜色.它改变了颜色.
das*_*dom 14
不知道这是否与你的问题有关,但是:这个
[nine setBackgroundColor:[UIColor redColor]];
Run Code Online (Sandbox Code Playgroud)
应该
[sender setBackgroundColor:[UIColor redColor]];
Run Code Online (Sandbox Code Playgroud)
编辑:更改此内容
[nine addTarget:self action:@selector(changeButtonBackGroundColor:) forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)
至
[nine addTarget:self action:@selector(changeButtonBackGroundColor:) forControlEvents:UIControlEventTouchDown];
[nine addTarget:self action:@selector(resetButtonBackGroundColor:) forControlEvents:UIControlEventTouchUpInside];
[nine addTarget:self action:@selector(resetButtonBackGroundColor:) forControlEvents:UIControlEventTouchUpOutside];
[nine addTarget:self action:@selector(resetButtonBackGroundColor:) forControlEvents:UIControlEventTouchCancel];
Run Code Online (Sandbox Code Playgroud)
并添加方法:
- (void)resetButtonBackGroundColor: (UIButton*)sender {
[sender setBackgroundColor:[UIColor cyanColor]];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13602 次 |
| 最近记录: |