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!