Я реализую цветную анимацию.iOS CABasicAnimation цветная анимация не влияет
Я хочу изменить цвет черного цвета на цвет градиента.
Я ищу метод, который может использовать CAGradientLayer для определения цвета градиента, а CABasicAnimation может достичь анимации изменения цвета.
Но я реализую ниже кода, сам вид не меняется на черный в первом, а цвет не был анимацией.
Вы знаете, что произошло с этим кодом?
большое спасибо.
// set black color in the view
CALayer *orginLayer = [CALayer layer];
orginLayer.backgroundColor = [[UIColor blackColor] CGColor];
[self.view.layer addSublayer:orginLayer];
// set gradient layer
CAGradientLayer *colorLayer = [ CAGradientLayer layer];
colorLayer.frame = (CGRect){ CGPointZero , CGSizeMake (self.view.frame.size.width , self.view.frame.size.height)};
colorLayer.position = self .view.center;
// define colors
UIColor *color1 = [UIColor colorWithRed:(255/255.0) green:(137/255.0) blue:(0/255.0) alpha:1.0];
UIColor *color2 = [UIColor colorWithRed:(247/255.0) green:(241/255.0) blue:(107/255.0) alpha:1.0];
NSArray *colors = [NSArray arrayWithObjects:(id)color1.CGColor,color2.CGColor,nil];
colorLayer.colors = colors;
colorLayer.startPoint = CGPointMake (1 , 0);
colorLayer.endPoint = CGPointMake (.3, 1);
// set the color animation black color-> gradient color
CABasicAnimation *animation;
animation = [CABasicAnimation animationWithKeyPath:@"colors"];
[animation setToValue:colorLayer];
[animation setDuration:10];
[animation setRemovedOnCompletion:YES];
[animation setFillMode:kCAFillModeForwards];
[animation setDelegate:self];
[self.view.layer addAnimation:animation forKey:@"animateGradient"];
анимацияWithKeyPath: @ "colors" выглядит неправильно. self.view.layer не имеет свойства, называемого цветами. возможно, вы хотели оживить свой градиент от черного до ваших цветов, а не view.layer? –
Можете ли вы дать больше намека или образца? Я хочу, чтобы я изменил свой цвет представления, от черного цвета (цвет init) до градиентного цвета (цвет завершения). спасибо – dickfala
Сделал это вместо этого. Теперь мы анимируем правый слой, слой градиента. –