Как исчезнуть цвет фона UIView - iOS 5

У меня возникли проблемы при попытке получить пользовательский класс UIView, чтобы скрыть его фон. Я проверил следующие вопросы StackOverflow, но они, похоже, не работают для меня.

Исчезать цвет фона от одного цвета к другому в UIView

Как вы явно анимируете backgroundColor CALayer?

Так что у меня есть пользовательский UIView, где пользователи могут рисовать вещи. Если то, что они рисуют, неверно, я хочу, чтобы цвет фона стал красным, а затем снова белым.

У меня есть этот пользовательский метод в пользовательском UIView называется

- (void)indicateMistake;

Когда я вызываю этот метод, я хочу, чтобы он выполнял анимацию цвета фона, поэтому у меня есть это в методе:

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"];

Но, кажется, ничего не происходит, когда я это делаю.

Тогда я попробовал анимацию глупого вращения, чтобы увидеть, работает ли она вообще:

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

По какой-то причине это работает, и пользовательский UIView вращается.

Затем, читая больше ответов на StackOverflow, я попробовал это:

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

Это сразу меняет цвет с красного на белый. Иногда это так быстро, что иногда я не вижу, как это происходит. Если я закомментирую[self setBackgroundColor: [UIColor whiteColor]]; он остается красным. Но есть узел постепенного белого к красному эффекту.

У меня закончились идеи .. Любая помощь будет оценена!

Ответы на вопрос(3)

Ваш ответ на вопрос