zoukankan      html  css  js  c++  java
  • 核心动画--基本动画

    #pragma mark 动画暂停
    
    - (void)pauseAnimation
    
    {
    
        // 1. 取出当前的动画的时间点,就是要暂停的时间点
    
        CFTimeInterval pauseTime = [self.myView.layer convertTime:CACurrentMediaTime() fromLayer:nil];
    
        // 2. 设置动画的时间偏移量,指定时间偏移量的目的是让动画定格在该时间点
    
        [self.myView.layer setTimeOffset:pauseTime];
    
        // 3. 将动画的运行速度设置为0,动画默认的运行速度是1.0
    
        [self.myView.layer setSpeed:0.0];
    
    }
    
    #pragma mark 恢复动画
    
    - (void)resumeAnimation
    
    {
    
        // 1. 将动画的时间偏移量作为暂停时的时间点
    
        CFTimeInterval pauseTime = self.myView.layer.timeOffset;
    
        // 2. 根据媒体时间计算出准确的启动动画时间,对之前暂停动画的时间进行修正
    
        CFTimeInterval beginTime = CACurrentMediaTime() - pauseTime;
    
        // 3. 要把偏移时间清零
    
        [self.myView.layer setTimeOffset:0.0];
    
        // 4. 设置图层的开始动画时间
    
        [self.myView.layer setBeginTime:beginTime];
    
        [self.myView.layer setSpeed:1.0];
    
    
    }
    
    
    注意:
    // 对于循环播放的动画效果,一定要将removedOnCompletion设置为NO,否则无法恢复动画
        [anim setRemovedOnCompletion:NO];
    
    
    #pragma mark 旋转动画
    
    - (void)rotationAnimation
    
    {
    
        // 1. 实例化基本动画
    
        // 默认按照z轴旋转
    
        CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
    
        [self.myView.layer setAnchorPoint:CGPointMake(0, 0)];
    
        // 2. 设置动画属性
    
        // 不停的旋转
    
        // 1) 旋转一周
    
        [anim setToValue:@(2 * M_PI)];
    
        // 2) 不停的旋转 - 动画循环播放
    
        // HUGE_VALF 是一个非常大得浮点数,指定此数值可以认为动画无限循环
    
        // MAXFLOAT 
    
        [anim setRepeatCount:HUGE_VALF];
    
        [anim setDuration:0.5f];
    
        // 3) 动画完成时删除
    
        // 对于循环播放的动画效果,一定要将removedOnCompletion设置为NO,否则无法恢复动画
    
        [anim setRemovedOnCompletion:NO];
    
        // 3. 添加动画
    
        // key可以随便指定,用于判断图层中是否存在该动画
    
        [self.myView.layer addAnimation:anim forKey:@"rotationAnim"];
    
    
    }
  • 相关阅读:
    Vue Supermall蘑菇街API后端接口
    Vue UI库:ElementUI使用教程
    Python操作数据库,读取数据并按照json格式写入json文件
    css 轮播图
    ArcGIS Server密码重置
    JavaScript之箭头函数
    arcgis属性对比
    JavaScript之Promise
    很遥远
    请不要等到四十年后才明白
  • 原文地址:https://www.cnblogs.com/yyh123/p/3346439.html
Copyright © 2011-2022 走看看