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

细节之处:

时间: 2025-01-01 11:32:20

iOS7中UIView的animateKeyframesWithDuration方法讲解的相关文章

关于iOS7中UIView效果失效问题的解决

近期想做一个跑马灯的效果,于是写出了如下的跑马灯效果的代码...但是调试发现,在iOS6下动画是可以执行的,但是在iOS7下动画并不执行,没有达到预期的效果. [_scrollLabel sizeToFit]; CGRect frame = _scrollLabel.frame; frame.origin.x = 320; _scrollLabel.frame = frame; [UIView setAnimationsEnabled:YES]; [UIView beginAnimations:

ios7中 丰富多彩的UIViewController之间的切换

转载自:http://onevcat.com/2013/10/vc-transition-in-ios7/ 毫无疑问,ViewController(在本文中简写为VC)是使用MVC构建Cocoa或者CocoaTouch程序时最重要的一个类,我们的日常工作中一般来说最花费时间和精力的也是在为VC部分编写代码.苹果产品是注重用户体验的,而对细节进行琢磨也是苹果对于开发者一直以来的要求和希望.在用户体验中,VC之间的关系,比如不同VC之间迁移和转换动画效果一直是一个值得不断推敲的重点.在iOS7中,苹

UIView属性及方法

1 @property(nonatomic) CGFloat alpha //设置视图的透明度 2 //透明度的设置从最小0.0到1.0 ,1.0为完全不透明, 3 //其中这个属性只影响当前视图,并不会影响其子视图 4 @property(nonatomic, getter=isOpaque) BOOL opaque 5 //决定当前视图是否是透明的 6 7 @property(nonatomic) BOOL autoresizesSubviews 8 //这个属性是决定当视图大小边界发生改变

iOS7中Objective-C和Foundation的新特性

转自kingzwt2009的专栏 注意事项(Ray):文章来自iOS 7 by Tutorials  iOS 7Feast的一部分(略) Objective-C 是最重要的iOS和OSX apps的开发工具.你可以使用其他语言的第三方框架开发apps,例如HTML&Javascript或者C#,但是如果你很快的写出一个超炫的高效率的原声apps你就需要使Objective-C. Foundation 是你开发Objective-C应用时用到的核心框架之一. 作为一名iOS开发者,非常有必要了解最

iOS7中计算UILabel中字符串的高度

iOS7中出现了新的方法计算UILabel中根据给定的Font以及str计算UILabel的frameSize的方法.本人提供category如下: UILabel+StringFrame.h ////  UILabel+StringFrame.h//  LabelHeight////  Copyright (c) 2014年 Y.X. All rights reserved.//#import <UIKit/UIKit.h>@interface UILabel (StringFrame)- 

iOS中中UIView头文件详细解析

@interface UIView : UIResponder<NSCoding, UIAppearance, UIAppearanceContainer, UIDynamicItem> /** *  通过一个frame来初始化一个UI控件 */ - (id)initWithFrame:(CGRect)frame; // YES:能够跟用户进行交互 @property(nonatomic,getter=isUserInteractionEnabled) BOOL userInteraction

UIView的各种方法介绍和生命周期

当一个视图控制器被创建,并在屏幕上显示的时候. 代码的执行顺序 1. alloc                                   创建对象,分配空间 2.init (initWithNibName) 初始化对象,初始化数据 3.loadView                          从nib载入视图 ,通常这一步不需要去干涉.除非你没有使用xib文件创建视图 4.viewDidLoad                   载入完成,可以进行自定义数据以及动态创建其

JNI中C调用Java方法

背景需求 我们需要在JNI的C代码调用Java代码.实现原理:使用JNI提供的反射借口来反射得到Java方法,进行调用. JNI关键方法讲解. 1. 在同一个类中,调用其他方法 JNIEXPORT void JNICALL Java_cn_itcast_ndkcallback_DataProvider_callmethod1 (JNIEnv * env, jobject obj){ //在c代码里面调用java代码里面的方法 // java 反射 //1 . 找到java代码的 class文件

常见的目标检测中的背景建模方法

Author: JW. ZHOU 2014/6/13 最近一直在做前景检测方面的研究,刚开始主要是做一些工程性的应用,为了解决工程方面的问题,下了不少功夫,也看了不少最近国内外的文章.一直想做个总结,拖着拖着,终究却写成这篇极不成功的总结. 背景建模或前景检测的算法主要有: 1. Single Gaussian (单高斯模型) Real-time tracking of the human body 2. 混合高斯模型(Mixture of Gaussian Model) An improved