我有三个随机生成的图像(实际上是 UIButton),当应用程序运行时,它要求用户在三个图像中选择一个随机图像(比如 a.png)。用户选择图像后,应用程序将根据选择的正确图像做一些事情或不。
现在的问题是我如何识别该用户选择正确的图像?我正在尝试获取用户选择的图像名称然后检查它,但真的不知道该怎么做。我已经在谷歌上搜索过这个,但找不到有用的东西。
任何人都可以帮忙吗?谢谢
我有三个随机生成的图像(实际上是 UIButton),当应用程序运行时,它要求用户在三个图像中选择一个随机图像(比如 a.png)。用户选择图像后,应用程序将根据选择的正确图像做一些事情或不。
现在的问题是我如何识别该用户选择正确的图像?我正在尝试获取用户选择的图像名称然后检查它,但真的不知道该怎么做。我已经在谷歌上搜索过这个,但找不到有用的东西。
任何人都可以帮忙吗?谢谢
当您真的想将图像的名称存储到按钮中时,而不是使用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.
在生成 UIButtons 时,您可以填充tag属性。然后您可以检查您sender.tag的值是否等于您填写的值。
当您只想检查是否选择了正确的图像时,您可以只将这一个设置为1,将其他按钮设置为0。
要知道单击了哪个按钮,您需要添加标签,例如从 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
  }
}
好吧,如果您UIButton为此目的使用 s,则可以Target Selector  在每个按钮上进行设置并确定UIButton使用它们的标签值。
还有另一种方法可以提供帮助。但只有你们中的一个人使用'backgroundImage'。这个动作应该与你的按钮相关联:
-(IBAction)photoIconClicked:(id)sender{
    if ([sender isKindOfClass:[UIButton class]]){
        UIButton *button = (UIButton*)sender;
        _currentImage = button.currentBackgroundImage;
    }
}