//  ViewController.m

//  IOS动画0817

//

//  Created by 张艳锋 on 15/8/17.

//  Copyright (c) 2015年 张艳锋. All rights reserved.

//

#import "ViewController.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UIImageView *imageview;

- (IBAction)doAnimationButton:(id)sender;

- (IBAction)doLeftButton:(id)sender;

- (IBAction)doRightButton:(id)sender;

- (IBAction)doUpButton:(id)sender;

- (IBAction)doDownButton:(id)sender;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

- (IBAction)doAnimationButton:(id)sender {

/********隐式动画********/

/*

[UIView beginAnimations:nil context:NULL];//动画开始标志

//定义一个仿射变换

CGAffineTransform moveTrans=CGAffineTransformMakeTranslation(300, 600);

// CGAffineTransformMakeTranslation//更改位置的函数

// CGAffineTransformMakeRotation//k控制旋转

//CGAffineTransformMakeScale//控制缩放

[_imageview.layer setAffineTransform:moveTrans];

[UIView commitAnimations];//提交动画

*/

/********显式动画********/

//定义显示动画的时候,我们不必定义CALayer的变化,也不必执行它,而是通过CABasicAnimation逐个定义动画,其中每个动画都含有各自的属性,然后通过addAnimation:方法添加到图层中

/*

CABasicAnimation *basic=[CABasicAnimation animationWithKeyPath:@"opacity"];//opacity表示透明度

basic.duration=6.0;//6秒内透明度变为零

basic.fromValue=[NSNumber numberWithFloat:0.2];//初始透明度

basic.toValue=[NSNumber numberWithFloat:1.0];//最终透明度

basic.cumulative=YES;//设置透明度递增

[_imageview.layer addAnimation:basic forKey:@"animateOpacity"];

CGAffineTransform moveTrans1=CGAffineTransformMakeTranslation(300, 600);

CABasicAnimation *basic_move=[CABasicAnimation animationWithKeyPath:@"transform"];//准备函数(为平移做准备)

basic_move.duration=6.0;

//CATransform3DMakeAffineTransform仿射变换为3D效果(仿射不能直接应用于显式动画)

basic_move.toValue=[NSValue valueWithCATransform3D:CATransform3DMakeAffineTransform(moveTrans1)];

[_imageview.layer addAnimation:basic_move forKey:@"animateTransform2"];

*/

/********关键帧动画********/

/*

CAKeyframeAnimation *keyAnimation=[CAKeyframeAnimation  animationWithKeyPath:@"opacity"];//透明度

keyAnimation.duration=6.0;//动画时间

keyAnimation.values=[NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0],[NSNumber numberWithFloat:0.6],[NSNumber numberWithFloat:1.0], nil];//

keyAnimation.keyTimes=[NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0],[NSNumber numberWithFloat:0.3],[NSNumber numberWithFloat:1.0], nil];

[_imageview.layer addAnimation:keyAnimation forKey:@"animateOpcaty"];

CGAffineTransform moveTrans2=CGAffineTransformMakeTranslation(300, 600);

CABasicAnimation *basic_move2=[CABasicAnimation animationWithKeyPath:@"transform"];

basic_move2.duration=6.0;

basic_move2.toValue=[NSValue valueWithCATransform3D:CATransform3DMakeAffineTransform(moveTrans2)];

[_imageview.layer addAnimation:basic_move2 forKey:@"animateTransform2"];

*/

}

//系统自带反转动画(上下左右)

- (IBAction)doLeftButton:(id)sender {

//三次向左不返回

[UIView beginAnimations:nil context:NULL];

[UIView setAnimationDuration:1.5f];//动画时间

[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];//设置动画曲线方式(动画的总体变化时间曲线,包含开始慢后来快,开始快后来慢,均匀曲线)

[UIView setAnimationRepeatAutoreverses:NO];//设置动画是否做一次反向操作

[UIView setAnimationRepeatCount:3];//执行次数

[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];//

[UIView commitAnimations];

}

- (IBAction)doRightButton:(id)sender {

//三次向右有返回

[UIView beginAnimations:nil context:NULL];

[UIView setAnimationDuration:1.5f];

[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

[UIView setAnimationRepeatAutoreverses:YES];

[UIView setAnimationRepeatCount:3];//执行次数

[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];

[UIView commitAnimations];

}

- (IBAction)doUpButton:(id)sender {

[UIView beginAnimations:nil context:NULL];

[UIView setAnimationDuration:1.5f];

[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

[UIView setAnimationRepeatAutoreverses:YES];

[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];

[UIView commitAnimations];

}

- (IBAction)doDownButton:(id)sender {

[UIView beginAnimations:nil context:NULL];

[UIView setAnimationDuration:1.5f];

[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

[UIView setAnimationRepeatAutoreverses:YES];

[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:YES];

[UIView commitAnimations];

}

IOS动画隐式,显式,翻页的更多相关文章

  1. 第一行Kotlin系列(二)Intent隐式显式跳转及向下传值

    1.Intent显式跳转页面 val button5 = findViewById<Button>(R.id.mButton5) button5.setOnClickListener { ...

  2. 动画:UIKitAnimation 简单动画学习 iOS (一) 渐变 、 移动 、翻页、来回翻转 ——转载

    转载请说明(谢谢) http://blog.csdn.net/a21064346/article/details/7851695 点击打开链接 以下 一个系列的 动画效果 在 UIView.h文件中可 ...

  3. iOS如何做出炫酷的翻页效果

    详情链接http://www.jianshu.com/p/b6dc2595cc3e https://github.com/schneiderandre/popping

  4. CALayer的隐式动画和显式动画

    隐式事务 任何对于CALayer属性的修改,都是隐式事务,都会有动画效果.这样的事务会在run-loop中被提交. - (void)viewDidLoad { //初始化一个layer,添加到主视图 ...

  5. CoreAnimation4-隐式动画和显式动画

    事务 Core Animation基于一个假设,说屏幕上的任何东西都可以(或者可能)做动画.动画并不需要你在Core Animation中手动打开,相反需要明确地关闭,否则他会一直存在. 当你改变CA ...

  6. 6个超炫酷的HTML5电子书翻页动画

    相信大家一定遇到过一些电子书网站,我们可以通过像看书一样翻页来浏览电子书的内容.今天我们要分享的HTML5应用跟电子书翻页有关,我们精选出来的6个电子书翻页动画都非常炫酷,而且都提供源码下载,有需要的 ...

  7. IOS动画总结

    IOS动画总结   一.基本方式:使用UIView类的UIViewAnimation扩展 + (void)beginAnimations:(NSString *)animationID context ...

  8. iOS动画学习 -隐式动画

    事务 Core Animation基于一个假设,说屏幕上的任何东西都可以(或者可能)做动画.你并不需要在Core Animation中手动打开动画,但是你需要明确地关闭它,否则它会一直存在. 当你改变 ...

  9. iOS 动画基础-显式动画

    摘要 显式动画 属性动画 CABasicAnimation *animation = [CABasicAnimation animation];         [self updateHandsAn ...

随机推荐

  1. 项目源码--Android新闻财经类商用要求源码

    技术要点: 1. 商用要求源码框架 2. 登录与注册用户系统模块 3. Android的Http通信以及多线程处理模块 4. Andorid的网络数据处理模块 5. Andorid的版本检测与升级模块 ...

  2. MR 的 mapper 数量问题

    看到群里面一篇文章涨了贱识 http://www.cnblogs.com/xuxm2007/archive/2011/09/01/2162011.html 之前关注过 reduceer 的数量问题,还 ...

  3. kafka 简介

    1.  概述 Kafka是Linkedin于2010年12月份开源的消息系统,它主要用于处理活跃的流式数据,使用scala编写.活跃的流式数据在web网站应用中非常常见,这些数据包括网站的pv.用户访 ...

  4. WinForm实现跨进程通信的方法

    public class WinMessageHelper { private struct COPYDATASTRUCT { public IntPtr dwData; public int cbD ...

  5. js数组的管理[增,删,改,查]

    今天在设计表单的时候遇到对数组的一些处理的问题,比如说怎么创建一个数组,然后牵扯到数组的增删改查的方法.请看API FF: Firefox, N: Netscape, IE: Internet Exp ...

  6. Python练习题 025:判断回文数

    [Python练习题 025] 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. ---------------------------------------- ...

  7. 转 如何使用velocity模板引擎开发网站

    基于 Java 的网站开发,很多人都采用 JSP 作为前端网页制作的技术,尤其在是国内.这种技术通常有一些问题,我试想一下我们是怎样开发网站的,通常有几种方法: 1:功能确定后,由美工设计网页的UI( ...

  8. MySQL(21):事务管理之 事务提交

    1. 现实生活中,许多操作都是需要用户确认的,例如用户删除一个文档,删除时候会弹出一个提示对话框,包含"确认"和"取消".同样的道理,在数据库中有些命令在使用的 ...

  9. [Android]天气App 3 网络数据的请求和Json解析

      Android客户端开发,不仅仅是在Android端开发,还需要有相应的后台服务支持,否则的话,客户端的数据就只能放到本地自己做处理.我认为的原生态的App就是对应服务端的Client.他能像浏览 ...

  10. centos安装ruby on rails

      最近研究svn使用http协议,但网上大多都是apache整合svn,我不想使用apache+svn,google翻了很多页终于让我找到了,但要求先安装ruby on rails,所以就有了下面的 ...