我有三个随机生成的图像(实际上是 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;
}
}