同じビューにボタンのインスタンスが多数ある小さな iOS ゲームを作成しています。ビューは、バブルのイメージを使用してボタンで埋められます。
これらのボタンのいずれかがタップされたときに画像を変更し、5 秒後に元に戻すことができるようにする必要がありますが、その方法がまったくわかりません D:
誰かが可能な解決策を提案できますか?
同じビューにボタンのインスタンスが多数ある小さな iOS ゲームを作成しています。ビューは、バブルのイメージを使用してボタンで埋められます。
これらのボタンのいずれかがタップされたときに画像を変更し、5 秒後に元に戻すことができるようにする必要がありますが、その方法がまったくわかりません D:
誰かが可能な解決策を提案できますか?
ボタンがタップされると、アクション セレクターが実行されます。アクション セレクターに渡される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];
});
}