iOS如何识别按下哪个图像(按钮)?

时间:2012-08-23 06:47:55

标签: objective-c ios uibutton uiimage

我有三个随机生成的图像(实际上是UIButton),当应用程序运行时,它要求用户在三个中选择一个随机图像(例如a.png)。用户选择图像应用程序将根据正确做一些事情图像是否被选中。

现在的问题是,如何确定用户选择正确的图像?我正在尝试获取用户选择的图像名称,然后检查它,但实际上不知道如何做到这一点。 我搜索谷歌这个但找不到有用的东西。

有人可以帮忙吗? 感谢

5 个答案:

答案 0 :(得分:4)

如果您确实想要将图像名称存储到按钮中,而不是使用tag属性,则可以将其设置为标题并隐藏titleLabel(apple reference说:尽管这样property是只读的,它自己的属性是可读/写的。使用这些属性来配置按钮标签的外观。):

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

[button setImage:[UIImage imageNamed:@"a.png"] forState:UIControlStateNormal]; 

button.titleLabel.hidden = true;
[button setTitle:@"a.png" forState:UIControlStateNormal];

然后您可以使用button.currentTitle访问图片名称。

答案 1 :(得分:3)

在生成UIButtons时,您可以填充tag属性。 然后,您可以检查sender.tag是否等于您填写的值。

如果您只想检查是否选择了正确的图片,则只能将此图片设置为1,其他按钮设置为0

答案 2 :(得分:2)

要知道点击了哪个按钮,您需要添加标签,例如0,1,2

[yourButton setTag:0]; //set tag 1 and 2 also to other button

现在为所有按钮添加相同的选择器或方法:

[yourButton setTarget:@selector(buttonClicked:) forState:UIControlTouchUPInside];
// setTarget to other buttons too

方法就是这样:

-(void)buttonClicked:(id)sender
{

  if([sender tag] == 0)
  {
     //button 1 clicked
  }
  else if([sender tag] == 1)
  {
     //button 2 clicked
  }
  else if([sender tag] == 2)
  {
    //button 3 clicked
  }
}

答案 3 :(得分:1)

如果您为此目的使用UIButton,那么您可以在每个按钮上设置Target Selector并使用其标记值确定UIButton

答案 4 :(得分:0)

还有一种方法可以提供帮助。但是只有你使用'backgroundImage'。这个动作应该与你的按钮联系起来:

-(IBAction)photoIconClicked:(id)sender{
    if ([sender isKindOfClass:[UIButton class]]){
        UIButton *button = (UIButton*)sender;
        _currentImage = button.currentBackgroundImage;
    }
}