博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发 专用图层(四)CAReplicatorLayer
阅读量:6959 次
发布时间:2019-06-27

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

hot3.png

    CAReplicatorLayer 的主要作用是生成相似的图层。

    先来一个生成一串正方形围成的圈圈的图片,代码比较简单,如下:

    

////  CAReplicatorLayerViewController.m//  iOSanimation////  Created by biyabi on 15/12/1.//  Copyright © 2015年 caijunrong. All rights reserved.//#import "CAReplicatorLayerViewController.h"@interface CAReplicatorLayerViewController ()@property (nonatomic, strong) UIView *GView;@end@implementation CAReplicatorLayerViewController- (void)viewDidLoad {    [super viewDidLoad];    [self.view setBackgroundColor:[UIColor groupTableViewBackgroundColor]];        CAReplicatorLayer *replicator = [CAReplicatorLayer layer];    replicator.frame = self.GView.bounds;    [self.view.layer addSublayer:replicator];        replicator.instanceCount = 10;        //旋转方向和角度主要还是由自己决定    CATransform3D transform = CATransform3DIdentity;    transform = CATransform3DTranslate(transform, 0, 100, 0);    transform = CATransform3DRotate(transform, M_PI/5, 0, 0, 1);        transform = CATransform3DTranslate(transform, 0, -100, 0);        //    replicator.instanceTransform = transform;    replicator.instanceBlueOffset = -0.1;    replicator.instanceGreenOffset = -0.1;        CALayer *layer = [CALayer layer];    layer.frame = CGRectMake([UIScreen mainScreen].bounds.size.width - 100*2, 100.0f, 100.0f, 100.0f);    layer.backgroundColor = [UIColor whiteColor].CGColor;    [replicator addSublayer:layer];}- (UIView *)GView{    if (!_GView) {        _GView  = [[UIView alloc]initWithFrame:CGRectMake([UIScreen mainScreen].bounds.size.width - 10*2, 94, 10,10)];        [self.view addSubview:_GView];    }    return _GView;}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}/*#pragma mark - Navigation// In a storyboard-based application, you will often want to do a little preparation before navigation- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {    // Get the new view controller using [segue destinationViewController].    // Pass the selected object to the new view controller.}*/@end

    倒影更简单了:

////  ReView.m//  iOSanimation////  Created by biyabi on 15/12/1.//  Copyright © 2015年 caijunrong. All rights reserved.//#import "ReView.h"@implementation ReView- (instancetype)initWithFrame:(CGRect)frame{    if (self = [ super initWithFrame:frame]) {                UIImageView *imageView = [[UIImageView alloc]initWithFrame:frame];        [self addSubview:imageView];        [imageView setImage:[UIImage imageNamed:@"icon_weibo"]];                //做倒影        CAReplicatorLayer *layer = (CAReplicatorLayer *)self.layer;        layer.instanceCount = 2;                CATransform3D transform = CATransform3DIdentity;        CGFloat verticalOffset = frame.size.height + 2;        transform = CATransform3DTranslate(transform, 0, verticalOffset, 0);        transform = CATransform3DRotate(transform, M_PI, 1, 0, 0);//        transform = CATransform3DScale(transform, 1, 0 , 0);        layer.instanceTransform = transform;            //reduce alpha of reflection layer        layer.instanceAlphaOffset = -0.6;                            }    return self;}+ (Class)layerClass{    return [CAReplicatorLayer class];}@end

转载于:https://my.oschina.net/caijunrong/blog/537885

你可能感兴趣的文章
HTML列表
查看>>
判断字符串a和b是否互为旋转词
查看>>
Android开发之炫酷MD风格
查看>>
eclipse生成spring boot jar包
查看>>
jetty java文件无法删除 java文件占用 delete无效 运行时锁定静态资源的解决方法...
查看>>
Centos7安装Python3.7
查看>>
Android 天气曲线
查看>>
机器学习入门04 - 使用TensorFlow的起始步骤 (First Steps with TensorFlow)
查看>>
MySQL之基础
查看>>
python实现微信接口——itchat模块
查看>>
正则表达式
查看>>
android stuidio 导入项目问题。
查看>>
Linux 安装python3.7.3 提示已经自动安装了pip和setuptools 可是使用时bash提示没有找到pip...
查看>>
万不要忽视身体发出的九大求救讯号
查看>>
卡尔曼滤波器:用R语言中的KFAS建模时间序列
查看>>
邮箱验证信息
查看>>
dom解析和sax解析
查看>>
Android画图并保存图片(转载)
查看>>
跳槽穷半年,改行穷三年,说的太好了!
查看>>
EhCache 分布式缓存/缓存集群
查看>>