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!