使用UIView动画函数实现转场动画——双视图
+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion;
 
参数说明:
–duration:动画的持续时间
–options:转场动画的类型
–animations:将改变视图属性的代码放在这个block中
–completion:动画结束后,会自动调用这个block
 

方法调用完毕后,相当于执行了下面两句代码:

// 添加toView到父视图

[fromView.superview addSubview:toView];

// 把fromView从父视图中移除

[fromView removeFromSuperview];

具体实例如下:

实现功能:创建两个子视图view1和view2,分别设置不同的背景颜色,并把它们添加到父视图中,然后创建触摸点击手势,

每次触摸屏幕时,两个视图交替切换显示,即实现转场动画。

代码如下:

//声明属性

#import "ViewController.h"@interface ViewController ()
@property (strong,nonatomic)UIView *view1;
@property (strong,nonatomic)UIView *view2;
@end

//初始化,创建两个子视图,同时创建触摸点击手势并添加手势事件

- (void)viewDidLoad {[super viewDidLoad];//初始化self.view1 = [[UIView alloc]initWithFrame:self.view.frame];self.view1.backgroundColor = [UIColor redColor]; //view1背景色为红色[self.view addSubview:self.view1];self.view2 = [[UIView alloc]initWithFrame:self.view.frame];self.view2.backgroundColor = [UIColor greenColor];//view2背景色为绿色[self.view addSubview:self.view2];//添加tap手势UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap:)];tap.numberOfTapsRequired = 1;tap.numberOfTouchesRequired = 1;[self.view addGestureRecognizer:tap];
}

//处理触摸点击手势事件,在block函数中实现双视图转场动画

#pragma mark -tap手势事件
-(void)tap:(UITapGestureRecognizer *)sender
{//通过判断视图的父视图是否为空,可以知道当前视图是不是正在显示if (self.view2.superview == nil){//通过block函数切换子视图(设置动画过渡类型为翻书效果)[UIView transitionFromView:self.view1 toView:self.view2 duration:1.0f options:UIViewAnimationOptionTransitionCurlUp completion:nil];;}else{//通过block函数切换子视图(设置动画过渡类型为翻书效果)[UIView transitionFromView:self.view2 toView:self.view1 duration:1.0f options:UIViewAnimationOptionTransitionCurlUp completion:nil];}
}

演示结果如下:

开始时:

点击后:

 

动画结束后:

还可以接着点击,会变为绿色视图,就不一一演示了。

转载于:https://www.cnblogs.com/XYQ-208910/p/4886689.html

iOS:UIView的block函数实现转场动画---双视图相关推荐

  1. (0030) iOS 开发之跳转之转场动画

    demo: 1 iOS  ~ ViewController的Push,Pop和Present,Dismiss转场动画 // http://blog.csdn.net/zhangao0086/artic ...

  2. 八 iOS之 CATransition (转场动画)

    CATransition是CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果. 动画转场类型 类型字符串 效果说明 关键字 方向 fade 交叉淡化过渡 YES p ...

  3. iOS 自定义转场动画, nav的push/pop自定义动画

    本文记录分享下自定义转场动画的实现方法,具体到动画效果:新浪微博图集浏览转场效果.手势过渡动画.网易音乐启动屏转场动画.开关门动画.全屏侧滑返回效果 的代码可以到Github WSLTransferA ...

  4. iOS开发之核心转场动画

    iOS开发UI篇-核心动画(转场动画和组动画) 一.转场动画简单介绍 CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果.iOS比Mac OS X的转场动画效果少一 ...

  5. IOS开发之——动画-转场动画(98)

    一 概述 CATransition转场动画介绍 专场动画属性及过渡效果 示例(动画切换模拟转场动画) 二 CATransition专场动画介绍 nCATransition是CAAnimation的子类 ...

  6. ios开发——使用CALayer和Core Animation做动画效果

    一. CALayer (一). CALayer简介 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView,其实UIV ...

  7. Android转场动画(View Activity ARouter)

    为什么要使用转场动画?在页面切换或者UI展示的时候,如果没有设计转场动画,那么状态场景的切换就是瞬间发生的,这样就非常突兀,没有视觉效果,所以在App开发的过程中,设计转场动画,是必不可少的. 1.揭 ...

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

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

  9. ios UIView全部API解读

    /********* UIView是iOS系统界面元素的基础,所有的界面元素都是集成自它.它本身完全是由CoreAnimation来实现的.它真正的绘图部分,是一个叫CALayer(Core Anim ...

最新文章

  1. Learn OpenGL (八):颜色
  2. c语言中.h文件中的宏定义,endian.h这个头文件里面的宏可以直接用么?
  3. 开源 java CMS - FreeCMS2.8 栏目页静态化参数
  4. 手机版html页面左右滑动切换页面,移动端手指左右滑动切换内容demo
  5. 使用H5实现机器人脸
  6. How is a Batch request handled in the backend
  7. mysql删除盘点表,用友U8数据库表名参照表修改号参考.doc
  8. Docker学习总结(33)——Docker环境下搭建 MySQL 主从复制
  9. autofac文档:事件
  10. extjs4 store传参使用方法
  11. 虚拟机win7纯净版镜像_win7中文版家vm虚拟机xp镜像庭普通版32位官方下载
  12. 计算机教室联想系统管理员密码,联想电脑EDU开放模式管理员密码忘记了怎么办...
  13. 华为手机如何分享文件至电脑
  14. hdu1576 A/B
  15. Python爬取股票数据存入mysql数据库,获取股票(最新、最高、今开、成交量、成交额、量比、换手率、涨幅等)支持多线程+数据库连接池
  16. biti_rainy的blog
  17. java模拟数据库压测_java模拟数据库缓存
  18. 微信用户免密免验证码登录
  19. 亚马逊、eBay、速卖通、lazada、Shopee等跨境平台,如何快速打造爆款
  20. 5000左右的linux笔记本推荐,5000左右,办公笔记本,有什么好的推荐

热门文章

  1. eclipse如何给main函数传参数
  2. ngx_lua模块API说明
  3. Python对数列进行全排列
  4. TensorFlow学习笔记(十七)tf.nn.conv2d
  5. Java 垃圾回收算法之G1
  6. Spark 框架安全认证实现
  7. MapReduce Job本地提交过程源码跟踪及分析
  8. 基于sentry的前端错误监控日志系统(部署sentry服务器/前端项目部署)-让前端最快的定位到生产问题...
  9. workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的)...
  10. float position的測试案例