有很多方法可以解决这个问题,在你的情况下,我们真的不知道你是如何实例化你的UIButton。以下目的是您使用标签的可能解决方案之一:
首先你应该在标题中定义你的按钮:
@implementation _4644518ViewController {
UIButton *btn1;
UIButton *btn2;
}
然后,你应该在你的视图中实现它们,并给它们附加 tapped 方法:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
btn1 = [[UIButton alloc] initWithFrame:CGRectMake(5, 5, 100, 30)];
[btn1 setTag:101];
[btn1 setTitle:@"btn1" forState:UIControlStateNormal];
btn1.backgroundColor = [UIColor lightGrayColor];
[btn1 addTarget:self action:@selector(btnTapped:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn1];
btn2 = [[UIButton alloc] initWithFrame:CGRectMake(5, 40, 100, 30)];
[btn2 setTag:102];
[btn2 setTitle:@"btn2" forState:UIControlStateNormal];
btn2.backgroundColor = [UIColor lightGrayColor];
[btn2 addTarget:self action:@selector(btnTapped:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn2];
}
最后要做的是实现你的btnTapped方法:
- (void)btnTapped:(id)sender
{
if ([sender tag] == 101) {
btn1.backgroundColor = [UIColor redColor];
btn2.backgroundColor = [UIColor lightGrayColor];
} else if([sender tag] == 102) {
btn1.backgroundColor = [UIColor lightGrayColor];
btn2.backgroundColor = [UIColor redColor];
}
}
正如我之前提到的,有很多方法可以执行这种算法,但我喜欢这个,因为我们对你的后台应用程序了解不多,而且这个很容易为你定制。