iOS如何识别按下了哪个图像(按钮)?
Posted
技术标签:
【中文标题】iOS如何识别按下了哪个图像(按钮)?【英文标题】:iOS how to identify which image (button) is pressed? 【发布时间】:2012-08-23 06:47:54 【问题描述】:我有三个随机生成的图像(实际上是 UIButton),当应用程序运行时,它会要求用户在三个图像中选择一个随机图像(比如 a.png)。用户选择图像后,应用程序会根据正确的图片是否被选中。
现在的问题是我如何识别该用户选择了正确的图像?我正在尝试获取用户选择的图像名称然后检查它,但真的不知道该怎么做。 我已经在 google 上搜索过,但找不到有用的东西。
有人可以帮忙吗? 谢谢
【问题讨论】:
看看是否按下按钮检查可以帮助你。一旦你被点击按钮,你可以检查哪个图像与该按钮相关联 问题是每次应用程序运行或用户选择正确的图像然后它会生成下3个随机图像,我必须访问图像的名称? 【参考方案1】:当您真的想将图像的名称存储到按钮中时,而不是使用tag
property,您可以将其设置为标题并隐藏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】:如果您为此目的使用UIButton
s,您可以在每个按钮上设置Target Selector
,并使用它们的标签值确定UIButton
。
【讨论】:
【参考方案5】:还有另一种方法可以提供帮助。但只有你们中的一个人使用'backgroundImage'。这个动作应该与你的按钮相关联:
-(IBAction)photoIconClicked:(id)sender
if ([sender isKindOfClass:[UIButton class]])
UIButton *button = (UIButton*)sender;
_currentImage = button.currentBackgroundImage;
【讨论】:
以上是关于iOS如何识别按下了哪个图像(按钮)?的主要内容,如果未能解决你的问题,请参考以下文章