Jak zanikać kolor tła UIView - iOS 5

Mam problem z próbą uzyskania niestandardowej klasy UIView, która powoduje zanikanie tła. Sprawdziłem następujące pytania StackOverflow, ale nie działają one dla mnie.

Zanik kolor tła z jednego koloru na inny w UIView

Jak wyraźnie animować kolor tła CALayera?

Mam więc własny UIView, w którym użytkownicy mogą rysować rzeczy. Jeśli to, co rysują, jest niepoprawne, chcę, aby kolor tła zanikał do czerwonego, a następnie do białego.

Mam niestandardową metodę w niestandardowym widoku UIView

- (void)indicateMistake;

Kiedy wywołam tę metodę, chcę, aby wykonała animację koloru tła, więc mam to w metodzie:

CABasicAnimation* fade = [CABasicAnimation animationWithKeyPath:@"backgroundColor"];
fade.fromValue = (id)[UIColor whiteColor].CGColor;
fade.toValue = (id)[UIColor redColor].CGColor;
[fade setDuration:3];
[self.layer addAnimation:fade forKey:@"fadeAnimation"];

Ale nic się nie dzieje, gdy to robię.

Więc spróbowałem głupiej animacji rotacyjnej, aby sprawdzić, czy nawet działa:

CABasicAnimation* rotate = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
rotate.toValue = [NSNumber numberWithInt:M_PI];
[rotate setDuration:1];
[self.layer addAnimation:rotate forKey:@"rotateAnimation"];

Z jakiegoś powodu działa i obraca się niestandardowy UIView.

Następnie czytając więcej odpowiedzi StackOverflow spróbowałem tego:

[UIView animateWithDuration:3 animations:^{
    [self setBackgroundColor: [UIColor redColor]];
} completion:^(BOOL finished) {
    [self setBackgroundColor: [UIColor whiteColor]];
}];

To natychmiast zmienia kolor z czerwonego na biały. Czasami Jest tak szybko, że czasami nie widzę tego. Jeśli komentuję[self setBackgroundColor: [UIColor whiteColor]]; pozostaje czerwony. Ale jest stopniowy efekt bieli do czerwieni.

Zabrakło mi pomysłów ... Każda pomoc byłaby doceniana!

questionAnswers(3)

yourAnswerToTheQuestion