我正在制作一款小型iOS游戏,在同一视图中有很多按钮实例。视图充满了使用气泡图像的按钮。
我需要能够在点击时更改其中一个按钮的图像,并在5秒后将其更改回来但是我完全不知道该怎么做D:
有人可以建议一个可能的解决方案吗?
答案 0 :(得分:1)
点击按钮后,他们将执行动作选择器。传递给操作选择器的sender
参数实际上是被点击的按钮,您可以使用它来更改其属性。要撤消更改,您可以使用dispatch_after
来延迟次要更改。
- (void)buttonWasTapped:(id)sender
{
__block UIButton *button = (UIButton *)sender; // This is the button that was tapped
[button setImage:[UIImage imageNamed:@"blah"] forState:UIControlStateNormal];
double delayInSeconds = 5.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[button setImage:[UIImage imageNamed:@"original_image"] forState:UIControlStateNormal];
});
}