Эффект анимации "Red alert" с анимацией Quartz 2D или CALayer? - PullRequest
0 голосов
/ 09 декабря 2011

Я новичок в анимации и просто не могу найти данные о том, как создать сигнальную лампочку (простой красный сигнализатор, который мигает).

Я знаю, как анимировать CALayer и основы Quartz 2D, я просто ищу учебник или руководство о том, как добиться эффекта подсветки?

Спасибо Шани

1 Ответ

0 голосов
/ 09 декабря 2011

Очень хакерский код (работает, но старайтесь не использовать его в производстве):

self.uiView1.backgroundColor = [UIColor redColor];

CABasicAnimation* selectionAnimation1 = [CABasicAnimation 
                                        animationWithKeyPath:@"opacity"];

selectionAnimation1.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];

selectionAnimation1.fromValue = [NSNumber numberWithFloat:0.0];
selectionAnimation1.toValue = [NSNumber numberWithFloat:1.0];

selectionAnimation1.duration = 0.10;
selectionAnimation1.repeatCount = 20;

[self.uiView1.layer addAnimation:selectionAnimation1
                       forKey:@"opacity"];


self.uiView2.backgroundColor = [UIColor blackColor];

CABasicAnimation* selectionAnimation2 = [CABasicAnimation 
                                        animationWithKeyPath:@"opacity"];

selectionAnimation2.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];

selectionAnimation2.fromValue = [NSNumber numberWithFloat:1.0];
selectionAnimation2.toValue = [NSNumber numberWithFloat:0.0];

selectionAnimation2.duration = 0.10;
selectionAnimation2.repeatCount = 20;

[self.uiView2.layer addAnimation:selectionAnimation2
                          forKey:@"opacity"];

uiView1 и uiView2 полностью перекрывают друг друга.Вы можете заменить два uiView на два UIImageView: один с включенным изображением света (красный), а другой с выключенным светом (черный / серый).В этом случае изменение цвета фона будет излишним.

...