私はお金を節約する方法について子供向けのアプリを作ろうとしています。ビジュアルとして、最初は空の瓶(UIIMage)があり、タップすると画像がコインで満たされた瓶に変わり(デポジット/保存をシミュレートするため)、瓶の下のラベルに何かが表示されます-おめでとうございます、別の預金をします。ユーザーが瓶を最大5回タップすると、5回目のタップで瓶がいっぱいになり、瓶の下のラベルに「お金が増えるのを見てください」と表示されるまで、コインが追加されます。
タップ1は今日発生する可能性があり、タップ2は別の時間に発生する可能性があり、タップ3は1週間後に発生する可能性があることに注意してください。
これを説明するために、tapCount(スイッチ付き)にtouchesBeganを使用しています。UIImageViewでの画像のタップと変更はうまく機能します(現在、タップ間の0.5秒間隔でのデモの場合)。
(1)これを正しく行っているかどうか疑問に思っています-アニメーションはうまく機能します-しかし、ユーザーがアプリを離れて再びタップに戻ると、タップ1atにリセットされます。最後のアクションを保存して、子供が終了してアプリに戻ったときに、子供が離れたときと同じ状態に到達するようにすることはできますか?NSUserdefaultを試しましたが、これは機能しないようでした。touchesBegan(スイッチ付き)からデータを保存できるかどうかさえ疑問に思っています。
どんなアイデアでも大歓迎です。ありがとう。
アニメーションのコードは次のとおりです(簡潔にするために3タップに短縮)。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
NSUInteger tapCount = [touch tapCount];
switch (tapCount) {
case 1:
[self performSelector:@selector(tappedOnce) withObject:nil afterDelay:0.5];
break;
case 2:
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(tappedOnce) object:nil];
[self performSelector:@selector(tappedTwice) withObject:nil afterDelay:0.5];
break;
case 3:
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(tappedTwice) object:nil];
[self performSelector:@selector(tappedThreeTimes) withObject:nil afterDelay:0.5];
break;
default:
break;
}
}
- (void)tappedOnce {
UIImageView *imageView = [[UIImageView alloc] initWithFrame:
CGRectMake(95, 93, 142, 205)];
imageView.contentMode = UIViewContentModeBottom;
imageView.image = [UIImage imageNamed:@"bucketb.png"];
[self.view addSubview:imageView];
instructionLabel.text=@"Congratulations, you have deposited money. Deposit some more.";
}
- (void)tappedTwice {
UIImageView *imageView = [[UIImageView alloc] initWithFrame:
CGRectMake(95, 93, 142, 205)];
imageView.contentMode = UIViewContentModeBottom;
imageView.image = [UIImage imageNamed:@"bucketc.png"];
[self.view addSubview:imageView];
instructionLabel.text=@"Congratulations, you have added more money to your account.";
}
- (void)tappedThreeTimes {
UIImageView *imageView = [[UIImageView alloc] initWithFrame:
CGRectMake(95, 93, 142, 205)];
imageView.contentMode = UIViewContentModeBottom;
imageView.image = [UIImage imageNamed:@"bucketd.png"];
[self.view addSubview:imageView];
instructionLabel.text=@"Watch your money grow.";
}
NSUserdefault(appdelegate):
- (void)applicationDidEnterBackground:(UIApplication *)application
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setInteger:5 forKey:@"lastTouch"];
[userDefaults synchronize];
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
int temp = [userDefaults integerForKey:@"lastTouch"];
}