我有多个UIButton
s - redButton
,greenButton
,yellowButton
等。当您点按其中一个按钮时,另一个UIImageView
将更改其相应地,例如redImage
,greenImage
,yellowImage
。
我该如何实现?我试过这个:
[self.redButton addTarget:self action:@selector(changeColour:) forControlEvents:UIControlEventTouchUpInside];
[self.greenButton addTarget:self action:@selector(changeColour:) forControlEvents:UIControlEventTouchUpInside];
[self.yellowButton addTarget:self action:@selector(changeColour:) forControlEvents:UIControlEventTouchUpInside];
在changeColour
:
-(void)changeColour:(id)sender{
// How do I know which button was pressed?
}
我想知道的是按下了哪个按钮。我更希望如此,当点击按钮时,它会更改名为int
的{{1}}变量。所以,像:
如果点按colour
,请更改greenButton
。如果点按int = 1
,请更改redButton
。
我搜索了StackOverflow和Google,结果表明要在int = 2
@selector
中添加一个方法。那么我需要在action:
中识别出哪个名为changeColour
的按钮?
答案 0 :(得分:2)
-(void)changeColour:(id)sender
{
if (sender == self.redButton) {
// redButton action
} else if (sender == self.greenButton) {
// greenButton action
} else if (sender == self.yellowButton) {
// yellowButton action
}
}
进行了这类识别,引入了sender
属性。
答案 1 :(得分:0)
您可以使用UIView的tag属性。 即。
self.redButton.tag = 1;
self.yellowButton.tag = 2;
在chnageColor方法中,您可以检索相同的内容。
-(void)changeColour:(id)sender
{
// How do I know which button was pressed?
UIButton *btn = (UIButton *)sender;
if(btn.tag == 1)
//Red is pressed..
//and you can check for other tags...
}
答案 2 :(得分:0)
点击Interface Builder中的UIButton
,然后在tag
中更改其Attributes Inspector
属性。然后在视图控制器中以编程方式访问此tag
属性,以了解按下了哪个按钮。