Como diminuir a cor de fundo do UIView - iOS 5

Estou com problemas para tentar obter uma classe personalizada do UIView para reduzir o fundo. Eu verifiquei as seguintes perguntas do StackOverflow, mas elas não parecem funcionar para mim.

Diminuir a cor de fundo de uma cor para outra em um UIView

Como você anima explicitamente o backgroundColor de um CALayer?

Então eu tenho um UIView personalizado onde os usuários podem desenhar coisas. Se o que eles desenharem estiver incorreto, quero fazer com que a cor do plano de fundo fique vermelha e depois volte ao branco.

Eu tenho esse método personalizado no UIView personalizado chamado

- (void)indicateMistake;

Quando eu chamo esse método, eu quero que ele execute a animação da cor de fundo, então eu tenho isso no método:

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

Mas nada parece acontecer quando eu faço isso.

Então eu tentei uma animação de rotação boba para ver se funciona mesmo:

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

Por alguma razão, isso funciona e o personalizado UIView gira.

Então, lendo mais respostas StackOverflow eu tentei isso:

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

Isso muda a cor do vermelho para o branco imediatamente. Às vezes é tão rápido que às vezes não consigo ver isso acontecer. Se eu comentar o[self setBackgroundColor: [UIColor whiteColor]]; fica vermelho. Mas há um efeito gradual branco a vermelho.

Eu fiquei sem ideias .. Qualquer ajuda seria apreciada!

questionAnswers(3)

yourAnswerToTheQuestion