新建一个view-based模板工程,在ViewController文件中添加下面的代码,即可实现翻转效果;

- (void)viewDidLoad {

[super viewDidLoad];

//需要翻转的视图

UIView *parentView = [[UIView alloc] initWithFrame:CGRectMake(0, 150, 320, 200)];

parentView.backgroundColor = [UIColor yellowColor];

parentView.tag = 1000;

[self.view addSubview:parentView];

}

//需要在h头文件声明下面的动作响应函数

//在xib文件中添加一个button,其响应函数为下面的函数

//运行程序后,点击button就看到翻转效果

-(IBAction)ActionFanzhuan{

//获取当前画图的设备上下文

CGContextRef context = UIGraphicsGetCurrentContext();

//开始准备动画

[UIView beginAnimations:nil context:context];

//设置动画曲线,翻译不准,见苹果官方文档

[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

//设置动画持续时间

[UIView setAnimationDuration:1.0];

//因为没给viewController类添加成员变量,所以用下面方法得到viewDidLoad添加的子视图

UIView *parentView = [self.view viewWithTag:1000];

//设置动画效果

[UIView setAnimationTransition: UIViewAnimationTransitionCurlDown forView:parentView cache:YES];  //从上向下

// [UIView setAnimationTransition: UIViewAnimationTransitionCurlUp forView:parentView cache:YES];   //从下向上

// [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:parentView cache:YES];  //从左向右

// [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:parentView cache:YES];//从右向左

//设置动画委托

[UIView setAnimationDelegate:self];

//当动画执行结束,执行animationFinished方法

[UIView setAnimationDidStopSelector:@selector(animationFinished:)];

//提交动画

[UIView commitAnimations];

}

//动画效果执行完毕

- (void) animationFinished: (id) sender{

NSLog(@"animationFinished !");

}

运行程序,点击按钮,就能看到动画效果了

下面我自己在parentView上添加了两个子视图实现动画

- (void)viewDidLoad {

[super viewDidLoad];

UIView *parentView = [[UIView alloc] initWithFrame:CGRectMake(0, 150, 320, 200)];

parentView.backgroundColor = [UIColor yellowColor];

parentView.tag = 1000;

UIImageView *image1 = [[UIImageView alloc] initWithFrame:CGRectMake(50, 50, 100, 100)];

image1.backgroundColor = [UIColor redColor];

image1.tag = 1001;

UIImageView *image2 = [[UIImageView alloc] initWithFrame:CGRectMake(50, 50, 100, 100)];

image2.backgroundColor = [UIColor blueColor];

image2.tag = 1002;

[parentView addSubview:image1];

[parentView addSubview:image2];

[self.view addSubview:parentView];

}

-(IBAction)ActionFanzhuan{

CGContextRef context = UIGraphicsGetCurrentContext();

[UIView beginAnimations:nil context:context];

[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];

[UIView setAnimationDuration:1.0];

UIView *parentView = [self.view viewWithTag:1000];

[UIView setAnimationTransition: UIViewAnimationTransitionCurlDown forView:parentView cache:YES];

// [UIView setAnimationTransition: UIViewAnimationTransitionCurlUp forView:parentView cache:YES];

// [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:parentView cache:YES];

// [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:parentView cache:YES];

NSInteger purple = [[parentView subviews] indexOfObject:[parentView viewWithTag:1002]];

NSInteger maroon = [[parentView subviews] indexOfObject:[parentView viewWithTag:1001]];

[parentView exchangeSubviewAtIndex:purple withSubviewAtIndex:maroon];

[UIView setAnimationDelegate:self];

[UIView setAnimationDidStopSelector:@selector(animationFinished:)];

[UIView commitAnimations];

}

- (void) animationFinished: (id) sender{

NSLog(@"animationFinished !");

}

另外:之前在viewDidLoad里面写实现动画的代码,但一致未实现动画效果,原来在viewDidLoad里面执行

CGContextRef context = UIGraphicsGetCurrentContext();

后context的指针为0

iOS的view翻转动画实现--代码老,供参考相关推荐

  1. 计时器效果 代码仅供参考

    效果图: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8 ...

  2. autojs免root脚本引擎开发的发送通知和去除通知代码,值得参考学习

    说明 本文提供的代码仅供参考.不建议用于生产环境. 可能有些地方在最新版本的Auto.js上面需要做修改,才能运行. Auto.js简介 Auto.js是利用安卓系统的"辅助功能" ...

  3. Android 点击View实现前后翻转动画

    一个不留神又好久没写博客了,有点儿惭愧.一方面最近实验室的项目巨多-手上同时两三个新的app一起做,关键就我一个人做-(说多了都是泪)-再加上还有学车的费劲事儿,就忘了博客这个事儿了,算了,废话少说, ...

  4. iOS - Core Animation 核心动画

    1.UIView 动画 具体讲解见 iOS - UIView 动画 2.UIImageView 动画 具体讲解见 iOS - UIImageView 动画 3.CADisplayLink 定时器 具体 ...

  5. iOS开发之各种动画各种页面切面效果

    转发:http://www.cocoachina.com/ios/20141226/10775.html 今天所介绍的主题是关于动画的,在之前的博客中也有用到动画的地方,今天就好好的总结一下iOS开发 ...

  6. 拐道交叉的css3动画,CSS3图片翻转动画技术详解

    CSS动画非常的有趣:这种技术的美就在于,通过使用很多简单的属性,你能创建出漂亮的消隐效果.其中代表性的一种就是CSS图片翻转效果,能让你看到一张卡片的正反两面上的内容.本文就是要用最简单的方法向大家 ...

  7. Android 卡片翻转动画效果

    转载请标明出处:http://blog.csdn.net/android_mnbvcxz/article/details/78570594 Android 卡片翻转动画效果 前言 前端时间开发一款应用 ...

  8. iOS 实现启动屏动画(Swift实现,包含图片适配)

    代码地址如下: http://www.demodashi.com/demo/12090.html 准备工作 首先我们需要确定作为宣传的图片的宽高比,这个一般是与 UI 确定的.一般启动屏展示会有上下两 ...

  9. iOS 自定义转场动画浅谈

    代码地址如下: http://www.demodashi.com/demo/11612.html 路漫漫其修远兮,吾将上下而求索 前记 想研究自定义转场动画很久了,时间就像海绵,挤一挤还是有的,花了差 ...

最新文章

  1. Word 技术篇-段落的前后间距单位磅改为行,行改为磅
  2. springboot 定制个性 banner
  3. kettle的安装与连接mysql(包含mysql8)简单使用,
  4. spring mvc学习(51):jsonp
  5. 8.22 NOIP模拟测试29(B) 爬山+学数数+七十和十七
  6. mysql pdo insert_PDO数据库操作类——插入数据的实现
  7. jar k8s 自己的 部署_微服务架构 - 离线部署k8s平台并部署测试实例
  8. github 使用之--ssh配置(及解决ssh_add 报错)
  9. python使用软件,输出,声明和if规则
  10. jquery 省市区联动插件
  11. Java 战国大富翁,中国古代八大富翁,比皇帝还有钱!其中三位是历史上公认的商圣...
  12. win11系统右键菜单改回以往风格(亲测有效)
  13. 如何保存PPT的背景图片
  14. linux 改成utc时间_linux – 如何将时区设置为UTC-8
  15. 【Unity】超级坦克大战(九)闯关流程:游戏行为对象模板
  16. 台式计算机怎么开关网络,怎么用台式电脑开wifi_台式电脑如何开启wifi
  17. linux phpcms,PHPCMS任意文件下载之exp编写
  18. 服务器认证信息,认证信息管理系统、服务器、方法和程序
  19. 数据可视化一:Excel数据可视化
  20. 存储器容量的扩充以及DRAM

热门文章

  1. jenkins配置节点为windows代理
  2. 配置不成功_在windows下配置sendmail服务器
  3. 低代码开发平台_如何挑选最适合你的低代码开发平台
  4. DenseNet稠密连接层
  5. matlab 雷达工具箱,使用Matlab的工具箱,学习“相控阵雷达技术”
  6. 在linux环境获取pcie卡信息,如何Linux下得到CPU、内存及PCI信息
  7. java 原子long_java中long和double类型操作的非原子性探究
  8. 删除重复行 oracle,Oracle删除重复行传智播客
  9. 新手福音,机器学习工具Sklearn 中文文档 0.19版(最新)
  10. 白噪音和粉红噪音煲机_10小时煲机后,HIFIMAN TWS600给你不一样的听觉盛宴