Objective c 强制按钮交换图像
Objective c 强制按钮交换图像,objective-c,ipad,ios,Objective C,Ipad,Ios,我正在为iPad开发一个匹配程序,当用户选择一个按钮时,一个图像被“打开”,然后当用户选择第二个按钮时,另一个图像被打开。然后,我通过编程检查是否匹配,如果不匹配,则将两个按钮图像恢复到其初始状态 这是很好的工作,除非没有匹配,开关发生得太快,以至于你没有时间看到你“发现”了什么。我试着让它睡觉,但图像始终无法切换到未覆盖状态。。。想法 其代码如下: //Take action on the tap of one of the buttons if(isFirstSelection) {
我正在为iPad开发一个匹配程序,当用户选择一个按钮时,一个图像被“打开”,然后当用户选择第二个按钮时,另一个图像被打开。然后,我通过编程检查是否匹配,如果不匹配,则将两个按钮图像恢复到其初始状态 这是很好的工作,除非没有匹配,开关发生得太快,以至于你没有时间看到你“发现”了什么。我试着让它睡觉,但图像始终无法切换到未覆盖状态。。。想法 其代码如下:
//Take action on the tap of one of the buttons
if(isFirstSelection)
{
firstSelection = [(UIButton *)sender tag];
tempImageItem = [tileArray objectAtIndex:firstSelection];
tempImage = [tempImageItem tileImage];
firstSelectionName = [[NSString alloc] initWithString:[tempImageItem tileName]];
[(UIButton *)sender setImage:tempImage forState:UIControlStateNormal];
tempButton = sender;
isFirstSelection = NO;
}else{
secondSelection = [(UIButton *)sender tag];
tempImageItem = [tileArray objectAtIndex:secondSelection];
tempImage = [tempImageItem tileImage];
secondSelectionName = [[NSString alloc] initWithString:[tempImageItem tileName]];
[(UIButton *)sender setImage:tempImage forState:UIControlStateNormal];
//Two game pieces have been removed so check to see if they are a match
if([firstSelectionName isEqualToString:secondSelectionName])
{
//Match found
//do something
}else{
**//NO MATCH FOUND
[NSThread sleepForTimeInterval:3];
//Display the checker board pieces again
[(UIButton *)sender setImage:[UIImage imageNamed:@"originalImage"] forState:UIControlStateNormal];**
}
//Reset isFirstSelection Flag to YES for next selection
isFirstSelection = YES;
}
据我所知,您希望在3秒钟后放置按钮的原始图像,以便用户有时间查看发生了什么。 您应该查看NSTimer类来触发该代码
[(UIButton *)sender setImage:[UIImage imageNamed:@"originalImage"] forState:UIControlStateNormal];
从现在起3秒钟内。对于“在X秒内运行此代码”,我更喜欢:
[self performSelector:@selector(spinWheel:) withObject:[NSNumber numberWithUnsignedInt:0] afterDelay:delay];
不需要乱搞计时器对象。是的,同意。我不想只是旋转,但我只是在尝试不同的东西,希望能有效果。Bogatyr的解决方案非常有效!不客气!在stack overflow上,您通过接受适合您的答案来表达您的感激之情并帮助其他提问者。