码迷,mamicode.com
首页 > 其他好文 > 详细

核心动画实现书本翻页效果加载动画

时间:2016-07-03 10:27:51      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

经常看到一些很好的动画加载视图,闲来无事就写了一个书本翻页样式的动画加载视图,核心技术是CALayer+CoreAnimation。

正题如下:

创建一个单独的layer:

   /*        使用类方法创建CAlayer对象         */

      CALayer *  layer = [CALayer layer];

        

        /*        CATransform实际上是一个结构体 因此不能直接对内部元素直接赋值         */

        CATransform3D transform = layer.transform;

        

        /*        设置layer的立体效果值 m34为该值 渲染立体效果         */

        transform.m34 = 10.5/-2000;

        

        layer.transform = transform;

        

        /*        设置layer的背景颜色,注意是CGColor类型         */

        layer.backgroundColor = [k_COLOR_STOCK[_currentIndex%k_COLOR_STOCK.count] CGColor];

        

        /*        设置锚点,锚点即动画的中心点,默认为(二维环境)(0.5.0.5),分别表示X轴中点 Y轴中点         */

        layer.anchorPoint = CGPointMake(0, 0.5);

        

        layer.frame = CGRectMake(200, 100, 30, 45);

        

        /*        设置layer的中心点,相当于UIView对象的center熟悉         */

        layer.position = CGPointMake(K_IOS_WIDTH/2, K_IOS_HEIGHT/2-50);

        

        [self.layer addSublayer:layer];

创建翻页动画

  /*        创建翻页动画         */

    CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"transform.rotation.y"];

    

    /*        transform.rotation.y的动画开始值         */

    basic.fromValue  = @(-M_PI );

    

    /*        transform.rotation.y的动画结束值         */

    basic.toValue = @(0);

    

    /*        是否在动画结束后自动按照反向动画回归原状态         */

    basic.autoreverses = NO;

    

    /*        动画执行次数         */

    basic.repeatCount = 1;

    

    /*        动画时长         */

    basic.duration = 1.0;

    

    /*        动画填充模式         */

    basic.fillMode = kCAFillModeRemoved;

    /*        设置代理         */

    basic.delegate = self;

    [layer addAnimation:basic forKey:@"basc"];

 当按照上方法循环添加多个layer动画时,并间隔0.2s执行,就会有从左到右的翻页动画效果。如果想要更加完美,可以将这些layer添加到数组,在从左到右的动画完成后,给数组中的layer添加一个反向动画,即可实现来回的翻页动画。效果图如下:

                                     技术分享

 

核心动画实现书本翻页效果加载动画

标签:

原文地址:http://www.cnblogs.com/ToBeTheOne/p/5636591.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!