1、CAReplicatorLayer简介

  CAReplicatorLayer用于对图层进行复制,包括图层的动画也能复制!可以看着将某一段事务进行重复!

#import <QuartzCore/CALayer.h>

NS_ASSUME_NONNULL_BEGIN
CA_CLASS_AVAILABLE (10.6, 3.0, 9.0, 2.0)
@interface CAReplicatorLayer : CALayer //指定图层重复制多少次
@property NSInteger instanceCount; //设置为YES,图层将保持于CATransformLayer类似的性质和相同的限制
@property BOOL preservesDepth; //复制延时,一般用在动画上
@property CFTimeInterval instanceDelay; //3D变换
@property CATransform3D instanceTransform; //设置多个复制图层的颜色,默认位白色
@property(nullable) CGColorRef instanceColor; //设置每个复制图层相对上一个复制图层的红色、绿色、蓝色、透明度偏移量
@property float instanceRedOffset;
@property float instanceGreenOffset;
@property float instanceBlueOffset;
@property float instanceAlphaOffset; @end NS_ASSUME_NONNULL_END

2、CAReplicatorLayer的简单使用

- (void)cirAction{
CAShapeLayer *sharLayer = [CAShapeLayer layer];
sharLayer.backgroundColor = [UIColor redColor].CGColor;
sharLayer.bounds = CGRectMake(, , , );
sharLayer.position = CGPointMake(CScreenWidth/, );
sharLayer.cornerRadius = ; CABasicAnimation *ani = [CABasicAnimation animationWithKeyPath:@"transform"];
ani.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(, , )];
ani.duration = ; CABasicAnimation *ani1 = [CABasicAnimation animationWithKeyPath:@"opacity"];
ani1.fromValue = @;
ani1.toValue = @;
ani1.duration = ; CAAnimationGroup *group = [CAAnimationGroup animation];
group.animations = @[ani,ani1];
group.duration = ;
group.repeatCount = HUGE;
[sharLayer addAnimation:group forKey:nil]; CAReplicatorLayer *replayer =[CAReplicatorLayer layer];
[replayer addSublayer:sharLayer];
replayer.instanceCount = ;
replayer.instanceDelay = 0.5;
[self.showView.layer addSublayer:replayer];
}

效果图

- (void)alphaAction{
CAShapeLayer *shapeLayer = [CAShapeLayer layer];
shapeLayer.backgroundColor = [UIColor redColor].CGColor;
shapeLayer.bounds = CGRectMake(, , , );
shapeLayer.position = CGPointMake(CScreenWidth/, );
shapeLayer.borderColor = [UIColor whiteColor].CGColor;
shapeLayer.cornerRadius = ;
shapeLayer.borderWidth = ;
shapeLayer.transform = CATransform3DMakeScale(., ., .); CABasicAnimation *ani = [CABasicAnimation animationWithKeyPath:@"transform"];
ani.duration = ;
ani.repeatCount = HUGE;
ani.fromValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(, , )];
ani.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(., ., .)];
[shapeLayer addAnimation:ani forKey:nil]; CAReplicatorLayer *repLayer = [CAReplicatorLayer layer];
repLayer.frame = CGRectMake(, , CScreenWidth, ); [repLayer addSublayer:shapeLayer];
repLayer.instanceCount = ;
repLayer.instanceDelay = .;
repLayer.instanceTransform = CATransform3DMakeRotation(M_PI/, , , );
repLayer.instanceAlphaOffset = -0.05;
[self.showView.layer addSublayer:repLayer]; }

效果图

iOS之CAReplicatorLayer属性简介和使用的更多相关文章

  1. iOS之CAGradientLayer属性简介和使用

    1.CAGradientLayer简介 CAGradientLayer用于制作背景图层的颜色渐变,也就是颜色梯度!相关属性简介: #import <QuartzCore/CALayer.h> ...

  2. iOS之CAScrollLayer属性简介和使用

    1.CAScrollLayer的简介 CAScrollLayer用于显示一个滑动图层的一部分,可以确定滑动方向和可视区域面积,限制不滑出区域外!相关属性如下:其中 /* Scroll the cont ...

  3. iOS之CALayer属性简介

    /* CoreAnimation - CALayer.h Copyright (c) 2006-2017, Apple Inc. All rights reserved. */ #import < ...

  4. iOS之CATextLayer属性简介

    1.CATextLayer简介 CATextLayer快速高效简单地来渲染纯文本.NSAttributedString /* The text layer provides simple text l ...

  5. iOS之CAShapeLayer属性简介

    1.CAShapeLayer需要和贝塞尔曲线一块使用! #import <QuartzCore/CALayer.h> NS_ASSUME_NONNULL_BEGIN CA_CLASS_AV ...

  6. iOS开发-automaticallyAdjustsScrollViewInsets属性

    iOS开发-automaticallyAdjustsScrollViewInsets属性 Available in iOS 7.0 and later. 简单点说就是automaticallyAdju ...

  7. HTML5 Audio and Video 的新属性简介

    前言:HTML5 中 Audio and Video的使用方法比较简单,但就是比较复杂,方法属性多.如果不常用的几乎难以记住,甚至有些人难以区分不同属性和方法的作用,更别说应用了.以下对Audio a ...

  8. IOS UITableView NSIndexPath属性讲解

    IOS UITableView NSIndexPath属性讲解   查看UITableView的帮助文档我们会注意到UITableView有两个Delegate分别为:dataSource和deleg ...

  9. IOS学习5——属性与成员变量

    [转]iOS中属性与成员变量的区别 ios中属性修饰符的作用 1. 属性用property声明 2. 简而言之,对于目前的ios开发,属性和成员变量的区别,完全可以不管. 3. 这个是历史原因造成的. ...

随机推荐

  1. git使用记录七:对工作区和暂存区的一些操作场景

    比较暂存区和HEAD所含文件的差异? 操作场景如下: 修改readme.md 文档 vi readme.md 加入到暂存区域 git add readme.md 使用git diff -cached ...

  2. urllib爬取实例

    #汉字转码.多个参数拼接 from urllib import request base_url = "http://www.baidu.com/s?" content = inp ...

  3. java.lang -> Boolean

    java.lang -> Boolean 是什么 Boolean 类是将 boolean 基本类型进行包装.类型为 Boolean 的对象包含一个单一属性 value,其类型为 boolean. ...

  4. JVM系列(二) — Java垃圾收集介绍

    这篇文章主要从以下几个方面介绍垃圾收集的相关知识 一.判断对象是否已死 二.主流垃圾收集算法 三.内存分配与回收策略 本章节主要从以下几个思考点着手介绍垃圾回收的相关知识:哪些内存需要回收?什么时候回 ...

  5. Redis项目实战,一些经验总结

    来源:https://my.oschina.net/u/920698/blog/3031587 背景 Redis 是一个开源的内存数据结构存储系统. 可以作为数据库.缓存和消息中间件使用. 支持多种类 ...

  6. PostgreSQL 荣获 2019 年 O'Reilly 终身成就奖

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 来自:开源中国社区 https://www.oschina.net/news/108436/pg-wins-2019-ore ...

  7. 偏向锁,偏向线程id ,自旋锁

    理解锁的基础知识 如果想要透彻的理解Java锁的来龙去脉,需要先了解以下基础知识. 基础知识之一:锁的类型 锁从宏观上分类,分为悲观锁与乐观锁. 乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发 ...

  8. python系列——文件操作

    打开和关闭 示例:python系列——文件操作的代码 打开模式 读取 写入

  9. [FW]修复ubutnu12.04+win7的grub2引导

    [转]修复ubutnu12.04+win7的grub2引导 原文位置:http://wenku.baidu.com/view/b6b7c9926bec0975f465e2f8.html ps:我使用的 ...

  10. VMware Converter Standalone迁移概要

    VMware Converter 迁移工具使用:1.基本概念 1.1基本组件: converter standalone server:包含server和worker两个服务,这两个服务经常一起安装 ...