iPhone UIViewのアニメーションの再生時間は即座に動作します
-
26-09-2019 - |
質問
このコードは、アニメーション、それだけで瞬時に背景色を変更しないが、サブクラスのUIViewのtouchesended方法で実行されています。何が間違っているのですか?
self.backgroundColor = [UIColor blackColor];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:20];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
if (score < .40) {
self.backgroundColor = [UIColor redColor];
} else {
self.backgroundColor = [UIColor greenColor];
}
[UIView commitAnimations];
解決
[UIView commitAnimations]
メソッドがブロックされていない - あなたはそれを呼び出すそうならば、それはアニメーションを開始しますが、それはすぐに、この時点の後にコードを実行します。あなたは、背景色を変更し、それ以下の任意のコードがある場合、それはあなたのアニメーションを中断します。
それは仕事をしない場合、別のプロパティをアニメーション化してみてください - 私は私の頭の位置&alpha
のトップをオフに知ってアニメートされているが、私は色の不確実です。 (アルファだけfloat
値であり、中心がちょうどCGPoint
で、プリミティブである両方とも、しかしUIColor
が参照タイプとUIViewのポインタをアニメーション化する方法を知らない可能性がある。)
所属していません StackOverflow