質問

このコードは、アニメーション、それだけで瞬時に背景色を変更しないが、サブクラスの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のポインタをアニメーション化する方法を知らない可能性がある。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top