UIView のアニメーションとブロック、基本的には 1 ステップのアニメーションで少しだけ作業しました。いくつかのステップをシーケンスに積み重ねたいと思います。以下のコードは機能しているようですが、これが正しいアプローチであるかどうか、および/またはブロック内にブロックを配置する際に問題/制限があるかどうか疑問に思っています。
ブロックは素晴らしいように見えますが、コードの書式設定は扱いにくい/判読不能になります。
CGRect newFrame = CGRectMake(0, 0, 500, 500);
UIView *flashView = [[UIView alloc] initWithFrame:newFrame];
flashView.tag = 999;
[flashView setBackgroundColor:[UIColor grayColor]];
[flashView setAlpha:0.f];
[self.view addSubview:flashView];
[UIView animateWithDuration:.2f
animations:^{
// STEP 1: FADE IN
[flashView setAlpha:1.f];
}
completion:^(BOOL finished){
[UIView animateWithDuration:.9f
animations:^{
// STEP 2: FADE OUT
[flashView setAlpha:0.f];
}
completion:^(BOOL finished){
// STEP 3: CLEAN UP
[flashView removeFromSuperview];
}
];
}];