简单核心动画的使用

来源:互联网 发布:是不是太胖了 c语言 编辑:程序博客网 时间:2024/05/17 23:06

 

    // 1. 使用核心动画的方式进行旋转

    // 1> 创建核心动画对象

    CABasicAnimation *anim = [CABasicAnimationanimationWithKeyPath:@"transform.rotation.z"];

   

    CGFloat angle = M_PI * 2 / 12 *(int)self.selectedButton.tag;

    // 2> 设置动画属性值

    anim.toValue = @(M_PI * 2 * 8 - angle);

    anim.duration = 2.0;

   

//    // 设置CALayer执行完毕动画后停留在动画结束的位置

//    // (1)、告诉CALayer,动画执行完毕后不要移除核心动画对象

//    anim.removedOnCompletion = NO;

//    // (2)、告诉CALayer,动画执行完毕后请保持动画结束时的位置

//    anim.fillMode = kCAFillModeForwards;

   

    // 设置核心动画执行的速率

    anim.timingFunction =[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

   

    // 为核心动画对象设置代理

    // 实现代理两种方式:1>通过协议  2> 通过分类(当通过分类来实现代理的时候又叫做:【隐式代理】)

    anim.delegate = self;

   

   

    // 4> 将核心动画对象添加到对应的CALayer中

    [self.imgViewRotate.layer addAnimation:animforKey:@"anim"];

 

++++++++++++++++++++++++++++++++++

// 核心动画开始执行时会调用的一个方法

-      (void)animationDidStart:(CAAnimation*)anim {}

// 核心动画停止执行时会调用的一个方法

- (void)animationDidStop:(CAAnimation *)animfinished:(B
0 0
原创粉丝点击