私のアプリでは、多数のアニメーション、移動するオブジェクトや形状などを実行します。アニメーションの多くは、他のオブジェクトのアニメーションにつながります。アプリケーションの問題は、アニメーションの実行中に、現在アニメーション化されているオブジェクトの 1 つを含む別のアニメーションを開始すると、画面が白くなったり、予期しない結果が得られることです。
私たちがやろうとしていることを示すために、いくつかのサンプルコードを作成しました。
UIButton *button;
BOOL currentlyShowingQuestion;
- (void)viewDidLoad
{
[self moveButton:button];
currentlyShowingQuestion = NO;
[NSTimer scheduledTimerWithTimeInterval:.1 target:self selector:@selector(hasBoolChanged) userInfo:nil repeats:YES];
}
- (void)moveButton:(UIButton *)buttonToUse {
currentlyShowingQuestion = YES;
NSLog(@"moveButton Called! Yippee!!!!!!!");
[UIView animateWithDuration:0.5 delay:0.5 options:nil animations:^{
buttonToUse.frame = CGRectMake(10, 10, 300, 440);
} completion:^(BOOL finished){
currentlyShowingQuestion = NO;
}];
}
-(void)hasBoolChanged {
if (currentlyShowingQuestion == YES) {
NSLog(@"Yes");
}
else if (currentlyShowingQuestion == NO) {
NSLog(@"No");
}
}
私が実際に目にするのは、メソッドが実行されると、currentShowingQuestion BOOL の両方が即座に変更されるため、YES に変更され、即座に NO に戻るようなものです。その後、アニメーションが実行されます。どうしてこれなの?注文の何が問題になっていますか?
どんな助けでも感謝します。コードのフォーマットについて申し訳ありません - ここで構文を理解できませんでした。
前もって感謝します、
サム