我有三个随机生成的图像(实际上是UIButton),当应用程序运行时,它要求用户在三个中选择一个随机图像(例如a.png)。用户选择图像应用程序将根据正确做一些事情图像是否被选中。
现在的问题是,如何确定用户选择正确的图像?我正在尝试获取用户选择的图像名称,然后检查它,但实际上不知道如何做到这一点。 我搜索谷歌这个但找不到有用的东西。
有人可以帮忙吗? 感谢
答案 0 :(得分:4)
如果您确实想要将图像名称存储到按钮中,而不是使用tag
属性,则可以将其设置为标题并隐藏titleLabel(apple reference说:尽管这样property是只读的,它自己的属性是可读/写的。使用这些属性来配置按钮标签的外观。):
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
访问图片名称。
答案 1 :(得分:3)
在生成UIButtons时,您可以填充tag
属性。
然后,您可以检查sender.tag
是否等于您填写的值。
如果您只想检查是否选择了正确的图片,则只能将此图片设置为1
,其他按钮设置为0
。
答案 2 :(得分: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
}
}
答案 3 :(得分:1)
如果您为此目的使用UIButton
,那么您可以在每个按钮上设置Target Selector
并使用其标记值确定UIButton
。
答案 4 :(得分:0)
还有一种方法可以提供帮助。但是只有你使用'backgroundImage'。这个动作应该与你的按钮联系起来:
-(IBAction)photoIconClicked:(id)sender{
if ([sender isKindOfClass:[UIButton class]]){
UIButton *button = (UIButton*)sender;
_currentImage = button.currentBackgroundImage;
}
}