今天我们看下CAReplicatorLayer, 官方的解释是一个高效处理复制图层的中间层。他能复制图层的所有属性包括动画

一样我们先看下头文件

@interface CAReplicatorLayer : CALayer@property NSInteger instanceCount;
//复制的个数
@property BOOL preservesDepth;
//这是一个bool值,默认为No,如果设为Yes,将会具有3维透视效果
@property CFTimeInterval instanceDelay;
//复制后的layer相比原来的距离
@property CATransform3D instanceTransform;
//复制layer的坐标系/方向偏转
@property(nullable) CGColorRef instanceColor;@property float instanceRedOffset;
@property float instanceGreenOffset;
@property float instanceBlueOffset;
@property float instanceAlphaOffset;@end

我们可以通过CAReplicatorLayer实现很炫的动画, 比如这个

上代码:

#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];//创建一个红色的圆形CALayerCALayer * layer       = [CALayer layer];layer.bounds          = CGRectMake(0, 0, 30, 30);layer.position        = CGPointMake(self.view.center.x - 50, self.view.center.y - 50);layer.backgroundColor = [UIColor redColor].CGColor;layer.cornerRadius    = 15;[self.view.layer addSublayer:layer];//创建一个透明度动画CABasicAnimation * animation1 = [CABasicAnimation animationWithKeyPath:@"opacity"];animation1.fromValue          = @(0);animation1.toValue            = @(1);animation1.duration           = 1.5;animation1.autoreverses       = YES;//创建一个缩放动画CABasicAnimation * animation2 = [CABasicAnimation animationWithKeyPath:@"transform.scale"];animation2.toValue            = @(1.5);animation2.fromValue          = @(0.5);animation2.duration           = 1.5;animation2.autoreverses       = YES;//创建一个动画组, 将之前创建的透明度动画和缩放动画加入到这个动画组中CAAnimationGroup * ani = [CAAnimationGroup animation];ani.animations         = @[animation1,animation2];ani.duration           = 1.5;ani.repeatCount        = MAXFLOAT;ani.autoreverses       = YES;//将动画组添加到layer
    [layer addAnimation:ani forKey:nil];CAReplicatorLayer * rec = [CAReplicatorLayer layer];rec.instanceCount       = 3;rec.instanceDelay       = 0.5;rec.instanceTransform   = CATransform3DMakeTranslation(50, 0, 0);[rec addSublayer:layer];[self.view.layer addSublayer:rec];CAReplicatorLayer * rec2 = [CAReplicatorLayer layer];rec2.instanceCount       = 3;rec2.instanceDelay       = 0.5;rec2.instanceTransform   = CATransform3DMakeTranslation(0, 50, 0);[rec2 addSublayer:rec];[self.view.layer addSublayer:rec2];
}@end

利用CAReplicatorLayer可以实现很多神奇的效果, 大家可以在发挥下脑洞

转载于:https://www.cnblogs.com/zhouxihi/p/6296019.html

CAReplicatorLayer复制Layer和动画, 实现神奇的效果相关推荐

  1. iOS开发CoreAnimation解读之四——Layer层动画内容

    iOS开发CoreAnimation解读之四--Layer层动画内容 一.引言 通过前几篇博客的介绍,我们可以了解到layer层可以设置许多与控件UI相关的属性,并且对于iOS开发,UIView层的属 ...

  2. Unity3d中使用自带动画系统制作下雨效果(一)

    之前看了以前版本的unity3d demo AngryBots ,觉得里面的下雨效果不错,刚好前段时间学习了,写出来跟大家分享下,直接开始. 使用自带动画系统制作下雨效果. 先制作下雨的雨滴涟漪. 步 ...

  3. 26_ue4进阶末日生存游戏开发[僵尸添加动画和扣血效果]

    给僵尸npc添加动画和扣血效果 首先新建一个动画文件夹 新建一个动画蓝图 一般只要是不做汽车啊等模型,我们一般选Animinstance 因为僵尸是女英雄,所以我们选择女英雄的动画 重命名Zombie ...

  4. html首页 slider图片切换效果,jQuery插件Slider Revolution实现响应动画滑动图片切换效果...

    jQuery插件Slider Revolution实现响应动画滑动图片切换效果 2018-12-31 编程之家 https://www.jb51.cc 这是一款非常强大的内容切换插件,它基于jQuer ...

  5. Unity3D 4.x怎样实现动画的Ping Pong效果

    近期在看Unity官方的Stealth项目教学视频.视频使用的是Unity旧的版本号,而我如今正在使用的是Unity 4.5,动画系统的操作全然不同了.依照视频的方式根本无法设置动画的Ping Pin ...

  6. CSS3动画实现高亮光弧效果,循环闪动效果

    主要运用css动画进行循环播放,修改css渐变效果元素 <!Doctype html> <html><head><meta name="viewpo ...

  7. 融入动画技术的粒子效果文字动画交互应用

    写在前面 本次实现的交互系统是基于粒子系统的粒子文本效果.本次课程设计主要参考代码本色一书中的内容,系统应用中运用了 <代码本色> 第一章 向量.第二章 力.第四章 粒子系统等章节的动画技 ...

  8. 使用css animation动画做边框闪动效果

    使用css animation动画做边框闪动效果 在拖拽div节点时,给div节点添加diagramTop-item-click样式,使用css animation动画0.5秒执行一次. css样式 ...

  9. html c3效果,使用c3动画实现摇铃铛效果

    使用c3动画实现摇铃铛效果 ui小姐姐想给通知栏目添加一个摇铃铛效果,好久没用c3的我太菜了,没搞完美,最后还是UI小姐姐制作了一个gif图,哈哈. 下面安排一个完美的纯css实现的摇铃铛效果,随便在 ...

最新文章

  1. 【每日一算法】平衡二叉树
  2. 如果不发论文,我们用什么证明自己的科研实力?
  3. 【AMAD】splinter -- 用于测试web app的python框架
  4. 浅谈RTS游戏网络同步:3种同步机制模式的实现
  5. Android学习(七)—— Android布局
  6. Django获取请求参数方式
  7. ASCII,Unicode,UTF-8,GB2312一些关于编码的理解
  8. 听音扒谱app_掌握这些,你也可以轻松扒谱(下)
  9. linux 分区100g整数,硬盘分区 整G 整数 法(从1g到200g最精确的整数分区)(转)...
  10. Javascript注释规范
  11. 云控微信开发SDK使用教程--微信联系人标签新增,修改通知服务端
  12. 蚂蚁全媒体中心总编刘鑫炜解答:「李子柒说时代给了我一阵风」,成就自媒体网红需要哪些助力?
  13. arpu计算方法、pv、uv、ip的意思
  14. 世界五大黑客:代码创造他们,他们改变世界!
  15. React Hooks 分享
  16. WPF实现炫酷Loading控件
  17. 通过安卓模拟器使直播软件obs的0粉丝用户开播
  18. 十二、中间系统到中间系统IS-IS(Intermediate System-to-Intermediate System)
  19. 你从未见过的“地狱级”烂项目
  20. 中国HIS企业发展思考与展望

热门文章

  1. 浅谈渗透测试之前期信息搜集
  2. Centos7 安装pyhton3.7.4
  3. Linux安装python3.7(Centos、Ubuntu)
  4. Linux学习 命令部分
  5. P1068 分数线划定 洛谷 (C++)(结构体排序)
  6. 公共语言运行库(CLR)和中间语言(IL)(一)
  7. c#问题(按F1或F2键时触发事件)
  8. Java Runtime.exec()的使用
  9. 对话框大小与像素关系
  10. svchost.exe占用CPU 100%,也可能是这样的原因