0

我正在制作一个小型 iOS 游戏,它在同一视图上有许多按钮实例。视图充满了使用气泡图像的按钮。

我需要能够在点击其中一个按钮时更改它的图像,并在 5 秒后将其更改回来,但是我完全不知道该怎么做 D:

有人可以建议一个可能的解决方案吗?

4

1 回答 1

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];
    });
}
于 2013-10-25T17:56:40.707 回答