Objective c 通过通用方法传递不同的UIButton。选择者/发送者是答案吗?
我从Interface Builder添加了大约20个按钮,按下时,按钮的颜色会改变如下:Objective c 通过通用方法传递不同的UIButton。选择者/发送者是答案吗?,objective-c,ios,methods,uibutton,selector,Objective C,Ios,Methods,Uibutton,Selector,我从Interface Builder添加了大约20个按钮,按下时,按钮的颜色会改变如下: -(IBAction)button1:(id)sender { if(playerTurn == YES) { button1.backgroundColor = [UIColor redColor]; } } 但是为了缩短时间,我似乎可以有一个通用的方法,这样当按下每个按钮时,就会运行这个方法。比如: -(IBAction)button1:(id)sender
-(IBAction)button1:(id)sender
{
if(playerTurn == YES)
{
button1.backgroundColor = [UIColor redColor];
}
}
但是为了缩短时间,我似乎可以有一个通用的方法,这样当按下每个按钮时,就会运行这个方法。比如:
-(IBAction)button1:(id)sender
{
//Go to method and make this button red
}
-(void)changeColour
{
if(playerTurn == YES)
{
buttonThatWasSent.backgroundColor = [UIColor redColor];
}
}
不幸的是,我不知道怎么做。似乎选择者/发送者就是答案?但是我还没有做任何我觉得有用的教程。你已经很接近了
- (IBAction)myActionWithAnArbitraryName:(UIButton *)sender
{
if(playerTurn == YES) {
[sender setBackgroundColor:[UIColor redColor]];
}
}
你很接近
- (IBAction)myActionWithAnArbitraryName:(UIButton *)sender
{
if(playerTurn == YES) {
[sender setBackgroundColor:[UIColor redColor]];
}
}
您可以链接单个操作的所有20个按钮 发送者知道按下了哪个按钮,所以直接更改发送者的背景颜色
-(IBAction)changeColour:(id)sender
{
if (playerTurn == YES)
sender.backgroundColor = [UIColor redColor];
}
注意:这不是经过测试的代码。但如果他们不这样做的话,我想这应该行得通:
UIButton *button=(UIButton *)sender;
button.backgroundColor = [UIColor redColor];
您可以链接单个操作的所有20个按钮 发送者知道按下了哪个按钮,所以直接更改发送者的背景颜色
-(IBAction)changeColour:(id)sender
{
if (playerTurn == YES)
sender.backgroundColor = [UIColor redColor];
}
注意:这不是经过测试的代码。但如果他们不这样做的话,我想这应该行得通:
UIButton *button=(UIButton *)sender;
button.backgroundColor = [UIColor redColor];
实际上,您可以对所有按钮使用一个iAction,并将发件人强制转换为UIButton:
- (IBAction)buttonPressed:(id)sender {
UIButton *button = (UIButton *)sender;
if (playerTurn == YES) {
button.backgroundColor = [UIColor redColor];
}
}
实际上,您可以对所有按钮使用一个iAction,并将发件人强制转换为UIButton:
- (IBAction)buttonPressed:(id)sender {
UIButton *button = (UIButton *)sender;
if (playerTurn == YES) {
button.backgroundColor = [UIColor redColor];
}
}