CAReplicatorLayer复制Layer和动画, 实现神奇的效果
今天我们看下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和动画, 实现神奇的效果相关推荐
- iOS开发CoreAnimation解读之四——Layer层动画内容
iOS开发CoreAnimation解读之四--Layer层动画内容 一.引言 通过前几篇博客的介绍,我们可以了解到layer层可以设置许多与控件UI相关的属性,并且对于iOS开发,UIView层的属 ...
- Unity3d中使用自带动画系统制作下雨效果(一)
之前看了以前版本的unity3d demo AngryBots ,觉得里面的下雨效果不错,刚好前段时间学习了,写出来跟大家分享下,直接开始. 使用自带动画系统制作下雨效果. 先制作下雨的雨滴涟漪. 步 ...
- 26_ue4进阶末日生存游戏开发[僵尸添加动画和扣血效果]
给僵尸npc添加动画和扣血效果 首先新建一个动画文件夹 新建一个动画蓝图 一般只要是不做汽车啊等模型,我们一般选Animinstance 因为僵尸是女英雄,所以我们选择女英雄的动画 重命名Zombie ...
- html首页 slider图片切换效果,jQuery插件Slider Revolution实现响应动画滑动图片切换效果...
jQuery插件Slider Revolution实现响应动画滑动图片切换效果 2018-12-31 编程之家 https://www.jb51.cc 这是一款非常强大的内容切换插件,它基于jQuer ...
- Unity3D 4.x怎样实现动画的Ping Pong效果
近期在看Unity官方的Stealth项目教学视频.视频使用的是Unity旧的版本号,而我如今正在使用的是Unity 4.5,动画系统的操作全然不同了.依照视频的方式根本无法设置动画的Ping Pin ...
- CSS3动画实现高亮光弧效果,循环闪动效果
主要运用css动画进行循环播放,修改css渐变效果元素 <!Doctype html> <html><head><meta name="viewpo ...
- 融入动画技术的粒子效果文字动画交互应用
写在前面 本次实现的交互系统是基于粒子系统的粒子文本效果.本次课程设计主要参考代码本色一书中的内容,系统应用中运用了 <代码本色> 第一章 向量.第二章 力.第四章 粒子系统等章节的动画技 ...
- 使用css animation动画做边框闪动效果
使用css animation动画做边框闪动效果 在拖拽div节点时,给div节点添加diagramTop-item-click样式,使用css animation动画0.5秒执行一次. css样式 ...
- html c3效果,使用c3动画实现摇铃铛效果
使用c3动画实现摇铃铛效果 ui小姐姐想给通知栏目添加一个摇铃铛效果,好久没用c3的我太菜了,没搞完美,最后还是UI小姐姐制作了一个gif图,哈哈. 下面安排一个完美的纯css实现的摇铃铛效果,随便在 ...
最新文章
- 【每日一算法】平衡二叉树
- 如果不发论文,我们用什么证明自己的科研实力?
- 【AMAD】splinter -- 用于测试web app的python框架
- 浅谈RTS游戏网络同步:3种同步机制模式的实现
- Android学习(七)—— Android布局
- Django获取请求参数方式
- ASCII,Unicode,UTF-8,GB2312一些关于编码的理解
- 听音扒谱app_掌握这些,你也可以轻松扒谱(下)
- linux 分区100g整数,硬盘分区 整G 整数 法(从1g到200g最精确的整数分区)(转)...
- Javascript注释规范
- 云控微信开发SDK使用教程--微信联系人标签新增,修改通知服务端
- 蚂蚁全媒体中心总编刘鑫炜解答:「李子柒说时代给了我一阵风」,成就自媒体网红需要哪些助力?
- arpu计算方法、pv、uv、ip的意思
- 世界五大黑客:代码创造他们,他们改变世界!
- React Hooks 分享
- WPF实现炫酷Loading控件
- 通过安卓模拟器使直播软件obs的0粉丝用户开播
- 十二、中间系统到中间系统IS-IS(Intermediate System-to-Intermediate System)
- 你从未见过的“地狱级”烂项目
- 中国HIS企业发展思考与展望
热门文章
- 浅谈渗透测试之前期信息搜集
- Centos7 安装pyhton3.7.4
- Linux安装python3.7(Centos、Ubuntu)
- Linux学习 命令部分
- P1068 分数线划定 洛谷 (C++)(结构体排序)
- 公共语言运行库(CLR)和中间语言(IL)(一)
- c#问题(按F1或F2键时触发事件)
- Java Runtime.exec()的使用
- 对话框大小与像素关系
- svchost.exe占用CPU 100%,也可能是这样的原因