博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发 - CAReplicatorLayer的运用
阅读量:6276 次
发布时间:2019-06-22

本文共 1906 字,大约阅读时间需要 6 分钟。

  hot3.png

#效果

love_music.gif

#Demo

建议先下载demo,再结合下面的分析,会好理解点。地址

#逻辑

  • 本文主要讲述love动效的制作。music动效可参照love动效注释。
  • 首先我们要得到一个love路径,这个路径用UIBezierPath来制作。
  • 然后生成一个UIView,它的layer加上CAKeyframeAnimation,而CAKeyframeAnimation的路径是love路径。
  • 把UIView的layer加入CAReplicatorLayer。并对设置CAReplicatorLayer相应属性即可。

#实现

  • love路径
    UIBezierPath *tPath = [UIBezierPath bezierPath];    [tPath moveToPoint:CGPointMake(SYS_DEVICE_WIDTH/2.0, 200)];    [tPath addQuadCurveToPoint:CGPointMake(SYS_DEVICE_WIDTH/2.0, 400) controlPoint:CGPointMake(SYS_DEVICE_WIDTH/2.0 + 200, 20)];    [tPath addQuadCurveToPoint:CGPointMake(SYS_DEVICE_WIDTH/2.0, 200) controlPoint:CGPointMake(SYS_DEVICE_WIDTH/2.0 - 200, 20)];    [tPath closePath];
  • 生成一个UIView
UIView *tView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)];    tView.center = CGPointMake(SYS_DEVICE_WIDTH/2.0, 200);    tView.layer.cornerRadius = 5;    tView.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0];
  • 给UIView添加上CAKeyframeAnimation动效
    CAKeyframeAnimation *loveAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];    loveAnimation.path = tPath.CGPath;    loveAnimation.duration = 8;    loveAnimation.repeatCount = MAXFLOAT;    [tView.layer addAnimation:loveAnimation forKey:@"loveAnimation"];
  • 生成一个CAReplicatorLayer,并把UIView的layer加入其中
    _loveLayer = [CAReplicatorLayer layer];    _loveLayer.instanceCount = 40;                // 复制39个子layer+原本的子layer共40个layer    _loveLayer.instanceDelay = 0.2;               // 每隔0.2出现一个layer    _loveLayer.instanceColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0].CGColor;    _loveLayer.instanceGreenOffset = -0.03;       // 颜色值递减。    _loveLayer.instanceRedOffset = -0.02;         // 颜色值递减。    _loveLayer.instanceBlueOffset = -0.01;        // 颜色值递减。

#末

  • CAReplicatorLayer里面还有一个instanceTransform属性,musicLayer就是用它的instanceTransform属性做的。所以还有很多效果可以做。就看你脑洞够不够大了。

  • 如果你有疑问或者发现错误请留言给我。3Q~~

转载于:https://my.oschina.net/resory/blog/527501

你可能感兴趣的文章
高性能和可扩展的React-Redux
查看>>
阿里云ECS云服务器资源购买决策
查看>>
安霸Alberto Broggi :计算机视觉技术驱动自动驾驶的发展 | 2019 AI+智能汽车创新峰会 ...
查看>>
top sql(oracle)
查看>>
125.53亿元!融创收购泛海北京泛海国际项目及上海董家渡项目 ...
查看>>
阿里云RPA(机器人流程自动化)干货系列之六:客户端安装及激活
查看>>
我最喜欢的快速排序算法之一
查看>>
5G将为农村地区做些什么?
查看>>
【翻译】Sklearn 与 TensorFlow 机器学习实用指南 —— 第11章 训练深层神经网络(下)...
查看>>
SQLflow:基于python开发的分布式机器学习平台, 支持通过写sql的方式,运行spark, 机器学习算法, 爬虫...
查看>>
机器学习可行性与VC dimension
查看>>
Nacos 发布 1.0.0 GA 版本,可大规模投入到生产环境
查看>>
关于ovirt主机即做存储又兼虚拟机主机的官方文档说明
查看>>
grep匹配结尾字符串的特殊情况
查看>>
第三方农资电商平台大丰收获华创资本数亿元C轮融资
查看>>
“虎鲸跳跃” 完成300万美元Pre-A轮融资,投资方为蓝湖资本及险峰长青
查看>>
JSON简介
查看>>
深圳安泰创新完成数千万新一轮融资,贝森资本领投
查看>>
当 Kubernetes 遇到阿里云
查看>>
MongoDB与Java 经典面试题、课程,好资源值得收藏
查看>>