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

Posted

技术标签:

【中文标题】iOS如何识别按下了哪个图像(按钮)?【英文标题】:iOS how to identify which image (button) is pressed? 【发布时间】:2012-08-23 06:47:54 【问题描述】:

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

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

有人可以帮忙吗? 谢谢

【问题讨论】:

看看是否按下按钮检查可以帮助你。一旦你被点击按钮,你可以检查哪个图像与该按钮相关联 问题是每次应用程序运行或用户选择正确的图像然后它会生成下3个随机图像,我必须访问图像的名称? 【参考方案1】:

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

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 访问图像名称。

【讨论】:

感谢 Rene Jennrich。希望这对我有帮助。【参考方案2】:

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

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

【讨论】:

是的,我可以设置标签属性,但问题是每次应用程序运行或用户选择正确的图像时,它会生成接下来的 3 个随机图像,我必须访问图像的名称? 您知道将哪个图像分配给按钮时正确吗? 是的,应用程序会要求在三张图片中选择一张,这样我就有了正确图片的名称。 那么当您在生成按钮时知道哪个图像是正确的,并且可以给正确的按钮一个带有1 的标签,就像我在上面编辑的那样。 我不能因为(比如说我有 3 张图片 a.png、b.png、c.png)并且每次应用都会要求选择不同的图片,我们可以说正确的图片是在运行时决定。所以无法修复正确图像的标签值。【参考方案3】:

要知道点击了哪个按钮,您需要添加标签,比如从 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
  

【讨论】:

【参考方案4】:

如果您为此目的使用UIButtons,您可以在每个按钮上设置Target Selector,并使用它们的标签值确定UIButton

【讨论】:

【参考方案5】:

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

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

【讨论】:

以上是关于iOS如何识别按下了哪个图像(按钮)?的主要内容,如果未能解决你的问题,请参考以下文章

确定用户按下了哪个按钮

如何检测哪个操纵杆按下了按钮?

如何知道从另一个视图控制器中的 UICollectionViewController 按下了哪个按钮

检测按下了哪个按钮? (然后行动)

cellView 中的按钮我不知道用户按下了哪个单元格

如何检查PKAddPassesViewController中是否按下了取消或添加按钮