美文网首页iOS学习编码里程ios学习
核心动画 - 02 旋转 缩放

核心动画 - 02 旋转 缩放

作者: 大玲_ | 来源:发表于2015-05-21 07:50 被阅读1972次

首先重复一下核心动画的基本步骤:

1.实例化基本动画
2.添加动画属性
3.将动画添加到图层

直接看旋转的代码吧,简单

    //1.实例化基本动画
    //默认按照Z轴旋转
    CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
    [self.myView.layer setAnchorPoint:CGPointMake(1, 0)];
    //2.设置基本属性
    //旋转一周2pi
    [anim setToValue:@(2 * M_PI)];
    //HUGE_VALF  一个非常大的浮点数值,认为无线循环
    [anim setRepeatCount:HUGE_VALF];
    //动画时长
    [anim setDuration:0.5f];
    //3.将动画添加到图层
    //key可以随意指定 , 判断图层中是否存在该动画
    [self.myView.layer addAnimation:anim forKey:@"rotationAnim"];

注意 :
1.修改animationWithKeyPath 和setAnchorPoint(锚点)动画就会发 生很大的变化。锚点会使他的位置发生变化。
2.HUGE_VALF 一个非常大的浮点数值,认为无线循环。
3.注意添加图层时指定了forKey的值,一会会用到,用来判断当前是否有动画执行,如果有暂停,没有继续。

缩放代码

    //1.实例化基本动画
    CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
    //2.设置基本属性
    //fromValue   toValue
    //从当前大小缩小到一半  然后恢复初始大小
    [anim setFromValue:@(1.0)];
    [anim setToValue:@(0.5)];
    [anim setAutoreverses:YES];
    //动画时长
    [anim setDuration:0.5f];
    //3.将动画添加到图层
    [self.myView.layer addAnimation:anim forKey:nil];

当动画开始后在点击 就暂停

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [self scaleAnimation];
    //判断myview是否旋转  如果已经旋转  就停止
    CAAnimation * anim = [self.myView.layer animationForKey:@"rotationAnim"];
    NSLog(@"%@",anim);
    if (anim) {
        //停止动画
        [self.myView.layer removeAllAnimations];

    }else{
        [self rotatopnAnimation];
    }
    
}

这是主要是根据 animationForKey来判断是否有CAAnimation。得到是否正在执行动画。

效果图:

setAnchorPoint 为 1—0.5.gif setAnchorPoint 为 0.5—0.5.gif

这两个效果图 是 setAnchorPoint 的值修改 ,来改变相对位置,旁边的log是判断暂停还是开始。

感谢那些让我进步,给我动力的人们,一起加油、一起努力、一起讨论!

相关文章

  • 核心动画 - 02 旋转 缩放

    首先重复一下核心动画的基本步骤: 1.实例化基本动画2.添加动画属性3.将动画添加到图层 直接看旋转的代码吧,简单...

  • 核心动画 - 02 旋转 缩放_2

    这篇文章是对上一篇文章 的完善和继续,建议读上一篇文章。 这篇文章主要有以下知识点:1.动画的暂停和开始(在点击的...

  • Android动画原理

    动画分类 补间动画 旋转、位移、透明度、缩放 属性动画 同样的属性动画也可以做到对View进行缩放、移动、旋转以及...

  • android 简单动画

    平移动画 旋转 // 缩放动画 // 透明度

  • 基于CABasicAnimation一些简单的动画

    利用CABasicAnimation来实现一些缩放,平移,旋转的动画 1.缩放 2.平移 3.旋转 4.动画组,将...

  • UIView动画与核心动画的对比使用

    核心动画的继承关系图 一、基础动画 改变位移、透明度、缩放、旋转、背景色改变等行为产生的动画,系统CALyer的核...

  • 第一篇

    使用css实现旋转,缩放,阴影,动画的效果。

  • AnimatorX - 让你的动画也能享受协程

    AnimatorX 动画 + 协程 = Power! Github地址 执行单个动画 位移动画 缩放动画 旋转动画...

  • Android 几种动画总结

    四种基本动画 透明度渐变动画(AlphaAnimation) 旋转动画(RotateAnimation) 缩放动画...

  • UIView动画

    目录 定时器动画效果(形变,缩放,平移,时时旋转,时时缩放,时时平移) block动画效果 (改变视图的frame...

网友评论

本文标题:核心动画 - 02 旋转 缩放

本文链接:https://www.haomeiwen.com/subject/mjilqttx.html