使用同一按钮的多个实例更改特定按钮的图像

时间:2013-10-25 17:43:06

标签: ios cocoa-touch button multiple-instances

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

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

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

1 个答案:

答案 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];
    });
}