• iOS7中UIView的animateKeyframesWithDuration方法讲解


    iOS7中UIView的animateKeyframesWithDuration方法讲解

    在iOS7中,给UIView添加了一个方法用来直接使用关键帧动画而不用借助CoreAnimation来实现,那就是animateKeyframesWithDuration

    以下是使用源码:

    //
    //  ViewController.m
    //
    //  Created by YouXianMing on 14/11/26.
    //  Copyright (c) 2014年 YouXianMing. All rights reserved.
    //
    
    #import "ViewController.h"
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        [self runAnimateKeyframes];
    }
    
    - (void)runAnimateKeyframes {
        
        /**
         *  relativeDuration  动画在什么时候开始
         *  relativeStartTime 动画所持续的时间
         */
        
        [UIView animateKeyframesWithDuration:6.f
                                       delay:0.0
                                     options:UIViewKeyframeAnimationOptionCalculationModeLinear
                                  animations:^{
                                      [UIView addKeyframeWithRelativeStartTime:0.0   // 相对于6秒所开始的时间(第0秒开始动画)
                                                              relativeDuration:1/3.0 // 相对于6秒动画的持续时间(动画持续2秒)
                                                                    animations:^{
                                                                        self.view.backgroundColor = [UIColor redColor];
                                                                    }];
                                      
                                      [UIView addKeyframeWithRelativeStartTime:1/3.0 // 相对于6秒所开始的时间(第2秒开始动画)
                                                              relativeDuration:1/3.0 // 相对于6秒动画的持续时间(动画持续2秒)
                                                                    animations:^{
                                                                        self.view.backgroundColor = [UIColor yellowColor];
                                                                    }];
                                      [UIView addKeyframeWithRelativeStartTime:2/3.0 // 相对于6秒所开始的时间(第4秒开始动画)
                                                              relativeDuration:1/3.0 // 相对于6秒动画的持续时间(动画持续2秒)
                                                                    animations:^{
                                                                        self.view.backgroundColor = [UIColor greenColor];                                                                }];
                                      
                                  }
                                  completion:^(BOOL finished) {
                                      [self runAnimateKeyframes];
                                  }];
    }
    
    @end

    细节之处:

  • 相关阅读:
    树的基本概念
    bean的生命周期
    bean的创建过程--doCreateBean
    bean的创建过程--doGetBean
    SpringBoot自动装配解析
    [论文理解] Good Semi-supervised Learning That Requires a Bad GAN
    Ubuntu 环境安装 opencv 3.2 步骤和问题记录
    Linux 环境使用 lsof 命令查询端口占用
    Ubuntu 安装不同版本的 gcc/g++ 编译器
    [持续更新] 安全能力成长计划
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/4311997.html
Copyright © 2020-2023  润新知