0

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

现在的问题是我如何识别该用户选择正确的图像?我正在尝试获取用户选择的图像名称然后检查它,但真的不知道该怎么做。我已经在谷歌上搜索过这个,但找不到有用的东西。

任何人都可以帮忙吗?谢谢

4

5 回答 5

4

当您真的想将图像的名称存储到按钮中时,而不是使用tag属性,您可以将其设置为标题并隐藏 titleLabel (苹果参考说:虽然这个属性是只读的,但它自己的属性被读取/write。使用这些属性来配置按钮标签的外观。):

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.

于 2012-08-23T07:14:05.550 回答
3

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

当您只想检查是否选择了正确的图像时,您可以只将这一个设置为1,将其他按钮设置为0

于 2012-08-23T06:50:55.653 回答
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
  }
}
于 2012-08-23T06:59:50.910 回答
1

好吧,如果您UIButton为此目的使用 s,则可以Target Selector 在每个按钮上进行设置并确定UIButton使用它们的标签值。

于 2012-08-23T06:54:03.910 回答
0

还有另一种方法可以提供帮助。但只有你们中的一个人使用'backgroundImage'。这个动作应该与你的按钮相关联:

-(IBAction)photoIconClicked:(id)sender{
    if ([sender isKindOfClass:[UIButton class]]){
        UIButton *button = (UIButton*)sender;
        _currentImage = button.currentBackgroundImage;
    }
}
于 2013-04-03T11:47:42.617 回答