Как исчезнуть цвет фона 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]];
он остается красным. Но есть узел постепенного белого к красному эффекту.
У меня закончились идеи .. Любая помощь будет оценена!