CATextLayer与CAGradientLayer实现文字渐变的动画效果
2017-03-15 17:26
1161 查看
先上效果图=>这自己弄的gif辣眼睛 ,凑合看吧
1.CATextLayer的创建:
CATextLayer *textLayer = [CATextLayer layer];
textLayer.frame = CGRectMake(0, 105/2, kScreenWidth, 50);
textLayer.contentsScale = [UIScreen mainScreen].scale;
textLayer.alignmentMode = kCAAlignmentCenter;
[backView.layer addSublayer:textLayer];
textLayer.string = [self gotTextLayerAttriString:@"35个"];
CATextLayer展示文字跟Label不大一样...
2.创建颜色渐变层
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = CGRectMake(0, 0, kScreenWidth, 155);
gradientLayer.colors = @[(id)[UIColor whiteColor].CGColor,
(id)[UIColor grayColor].CGColor,
(id)[UIColor whiteColor].CGColor
];
gradientLayer.locations = @[@(0),@(0.25),@(0.4)];
gradientLayer.startPoint = CGPointMake(0, 0);
gradientLayer.endPoint = CGPointMake(1, 1);
gradientLayer.mask = textLayer;
[backView.layer addSublayer:gradientLayer];
3.让渐变层动起来
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"locations"];
animation.fromValue = @[@(0.1),@(0.1),@(0.1)];
animation.toValue = @[@(0.7),@(0.85),@(1.0)];
animation.duration = 1.5;
animation.autoreverses = YES;
animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeForwards;
[gradientLayer addAnimation:animation forKey:nil];
@end
1.CATextLayer的创建:
CATextLayer *textLayer = [CATextLayer layer];
textLayer.frame = CGRectMake(0, 105/2, kScreenWidth, 50);
textLayer.contentsScale = [UIScreen mainScreen].scale;
textLayer.alignmentMode = kCAAlignmentCenter;
[backView.layer addSublayer:textLayer];
textLayer.string = [self gotTextLayerAttriString:@"35个"];
CATextLayer展示文字跟Label不大一样...
2.创建颜色渐变层
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = CGRectMake(0, 0, kScreenWidth, 155);
gradientLayer.colors = @[(id)[UIColor whiteColor].CGColor,
(id)[UIColor grayColor].CGColor,
(id)[UIColor whiteColor].CGColor
];
gradientLayer.locations = @[@(0),@(0.25),@(0.4)];
gradientLayer.startPoint = CGPointMake(0, 0);
gradientLayer.endPoint = CGPointMake(1, 1);
gradientLayer.mask = textLayer;
[backView.layer addSublayer:gradientLayer];
3.让渐变层动起来
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"locations"];
animation.fromValue = @[@(0.1),@(0.1),@(0.1)];
animation.toValue = @[@(0.7),@(0.85),@(1.0)];
animation.duration = 1.5;
animation.autoreverses = YES;
animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeForwards;
[gradientLayer addAnimation:animation forKey:nil];
@end
相关文章推荐
- 利用CADisplayLink 和 CAGradientLayer来实现文字渐变效果
- CAGradientLayer(颜色渐变) -- 实现iphone手机屏幕“滑动来解锁”动画效果
- iOS实现知乎和途家导航栏渐变的文字动画效果
- 实现文字的颜色渐变效果 CAGradientLayer(渐变色图层)
- fadeColor类,实现背景色和前景色渐变动画效果
- gif的动画图片,可否实现文字水印和图片水印的效果呢?
- 动画效果之渐变、缩放、平移、旋转<代码实现>
- 【iOS开发-24】导航控制器下不同视图控制器之间切换:利用CATrasition和view的layer层来实现自定义的动画效果
- CAGradientLayer与CAShapeLayer实现不同颜色画圆动画(Spark相机的录制的效果)
- CAGradientLayer实现图片渐变透明效果
- CSS3下的渐变文字效果实现
- 使用layer-list实现文字下划线、边框线效果
- CSS3下的渐变文字效果实现
- 用css实现文字渐变 镂空效果
- Delphi实现窗口文字淡入淡出渐变效果的方法
- 使用Layer类和Sprite类实现手机游戏的动画效果
- 使用jQuery来实现菜单文字和图标动画效果
- JavaScript实现新浪微博文字放大显示动画效果
- 用CSS3可以很简单地实现文字渐变效果
- WPF实现渐变淡入淡出的动画效果