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"];
罗伯特·古默森

这是您需要做的。也清理了一下代码。:)

// set gradient layer
CAGradientLayer *colorLayer = [CAGradientLayer layer];
colorLayer.frame = (CGRect){ { }, self.view.frame.size };
colorLayer.position = self.view.center;

// define colors
UIColor *color1 = [UIColor colorWithRed:255/255. green:137/255. blue:0/255. alpha:1.0];
UIColor *color2 = [UIColor colorWithRed:247/255. green:241/255. blue:107/255. alpha:1.0];

NSArray *colors = @[(id)color1.CGColor, (id)color2.CGColor];
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.fromValue = @[(id)[UIColor blackColor].CGColor, (id)[UIColor blackColor].CGColor];
animation.toValue = colors;
animation.duration = 10;
animation.removedOnCompletion = YES;
animation.fillMode = kCAFillModeForwards;
[colorLayer addAnimation:animation forKey:@"animateGradient"];
[self.view.layer addSublayer:colorLayer];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用于计时器动画的CABasicAnimation在iOS 8+上不起作用

来自分类Dev

CABasicAnimation在iOS7中不起作用

来自分类Dev

iOS UIView动画取消不起作用

来自分类Dev

iOS UIView动画取消不起作用

来自分类Dev

UIView动画不起作用-iOS

来自分类Dev

iOS SpriteKit动画不起作用

来自分类Dev

iOS更改UiButton的颜色不起作用

来自分类Dev

UIView动画在iOS 7中不起作用

来自分类Dev

iOS共享GIF(动画图像)不起作用

来自分类Dev

动画在iOS Play场中不起作用

来自分类Dev

iOS 谷歌地图方法 UIView 动画不起作用

来自分类Dev

Reactjs PWA 启动画面在 iOS 上不起作用

来自分类Dev

iOS:UIButton的标题阴影颜色不起作用

来自分类Dev

iOS 可设计按钮背景颜色不起作用

来自分类Dev

Spritekit动画在iOS7中不起作用,但在iOS8中起作用

来自分类Dev

ios中动画期间,imageview的手势不起作用

来自分类Dev

解除视图控制器动画在 iOS 9 中不起作用

来自分类Dev

Angular 4 动画在 iOS Safari 10/11 上不起作用

来自分类Dev

在iOS7中自定义NavigationBar-标题颜色不起作用

来自分类Dev

使用核心文本框架的PDF生成中的iOS文本颜色不起作用

来自分类Dev

状态栏内容颜色在VC iOS7中不起作用

来自分类Dev

尝试更改框架大小的UIView动画在iOS 8中不起作用,但在iOS 7中

来自分类Dev

CABasicAnimation链接不起作用

来自分类Dev

NSDateformatter在IOS 7.0.4中不起作用

来自分类Dev

如果#available(iOS 9,*)不起作用

来自分类Dev

UIActivityViewController在iOS 8中不起作用

来自分类Dev

FileReader在iOS 8上不起作用

来自分类Dev

setSelectedImageTintColor在iOS 7中不起作用

来自分类Dev

右填充在iOS中不起作用

Related 相关文章

热门标签

归档