CATransform3D立体效果演示

很久之前看过一篇讲CATransform3D的文章,现在找不到了...,这个效果是文章里面的,现在重新实现一下这个效果。


- (void)viewDidLoad {
    [super viewDidLoad];
    
    UIScrollView *scroll = [UIScrollView new];
    scroll.frame = [UIScreen mainScreen].bounds;
    scroll.backgroundColor = [UIColor blackColor];
    scroll.contentSize = CGSizeMake(scroll.bounds.size.width*3, scroll.bounds.size.width*3);
    [self.view addSubview:scroll];
    
    //设置父图层的sublayerTransform属性的m34值,那么所有的子图层都会生效,且共同享有一个灭点
    CATransform3D transform = CATransform3DIdentity;
    transform.m34 = -1.0 / 500;
    scroll.layer.sublayerTransform = transform;
    
    
    int row = 5;
    int col = 5;
    int level = 11;
    int wight = 50;
    int margin = 30;
    
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        for (int i=0; i<row; i++) {   //行
            for (int j=0; j<col; j++) {   //列
                for (int k=0; k<level; k++) {   //层
                    CALayer *layer = [CALayer layer];

                    //设置背景色,越底部的图层颜色越深
                    CGFloat color = 0.2+k*(0.8/level);
                    layer.backgroundColor = [UIColor colorWithRed:color green:color blue:color alpha:1].CGColor;
                    layer.opaque = YES;
                    layer.frame = CGRectMake(200 + i*(margin+wight), 200 + j*(margin+wight), 50, 50);
                    CATransform3D transform = CATransform3DMakeTranslation(0, 0, k*50-150);
                    
                    //动画
                    CABasicAnimation *anim = [CABasicAnimation animation];
                    anim.fromValue = @(CATransform3DMakeTranslation(0, 0, 0));
                    anim.toValue = @(transform);
                    anim.duration = k*0.2;
                    anim.keyPath = @"transform";
                    anim.removedOnCompletion = NO;          //动画完成时不移除动画
                    anim.fillMode = kCAFillModeForwards;
                    
                    [layer addAnimation:anim forKey:@""];
                    [scroll.layer addSublayer:layer];
                }
            }
        }
    });
    
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 秋高云淡阳温暖, 金扇风姿妩媚香。 夺占皇家独宠色, 雍华富贵满枝芳。
    白马卓玛阅读 1,459评论 17 59
  • 如果有一个人把一个普通的日子装扮装扮,然后说:你看——你睁开眼,发现他为这一天采来了风采来了草,请来了一些活泼的小...
    简书作者木瓜阅读 272评论 2 3
  • 1、财务自由是什么 你每月不用为钱劳苦奔波,仍然有收入来源应对日常开支,且还有盈余。 2、不能省掉愉悦 为了早日存...
    云间看生活阅读 219评论 0 2
  • 三天假期,宝宝约了几个朋友一块去了杭州!昨天几个人买了早上的车票,居然晚点了!“怎么会晚点呢”,真让人不放心!我没...
    千铭天阅读 242评论 1 2