iOS:UIView的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函数实现转场动画---双视图相关推荐
- (0030) iOS 开发之跳转之转场动画
demo: 1 iOS ~ ViewController的Push,Pop和Present,Dismiss转场动画 // http://blog.csdn.net/zhangao0086/artic ...
- 八 iOS之 CATransition (转场动画)
CATransition是CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果. 动画转场类型 类型字符串 效果说明 关键字 方向 fade 交叉淡化过渡 YES p ...
- iOS 自定义转场动画, nav的push/pop自定义动画
本文记录分享下自定义转场动画的实现方法,具体到动画效果:新浪微博图集浏览转场效果.手势过渡动画.网易音乐启动屏转场动画.开关门动画.全屏侧滑返回效果 的代码可以到Github WSLTransferA ...
- iOS开发之核心转场动画
iOS开发UI篇-核心动画(转场动画和组动画) 一.转场动画简单介绍 CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果.iOS比Mac OS X的转场动画效果少一 ...
- IOS开发之——动画-转场动画(98)
一 概述 CATransition转场动画介绍 专场动画属性及过渡效果 示例(动画切换模拟转场动画) 二 CATransition专场动画介绍 nCATransition是CAAnimation的子类 ...
- ios开发——使用CALayer和Core Animation做动画效果
一. CALayer (一). CALayer简介 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView,其实UIV ...
- Android转场动画(View Activity ARouter)
为什么要使用转场动画?在页面切换或者UI展示的时候,如果没有设计转场动画,那么状态场景的切换就是瞬间发生的,这样就非常突兀,没有视觉效果,所以在App开发的过程中,设计转场动画,是必不可少的. 1.揭 ...
- iOS 自定义转场动画浅谈
代码地址如下: http://www.demodashi.com/demo/11612.html 路漫漫其修远兮,吾将上下而求索 前记 想研究自定义转场动画很久了,时间就像海绵,挤一挤还是有的,花了差 ...
- ios UIView全部API解读
/********* UIView是iOS系统界面元素的基础,所有的界面元素都是集成自它.它本身完全是由CoreAnimation来实现的.它真正的绘图部分,是一个叫CALayer(Core Anim ...
最新文章
- Learn OpenGL (八):颜色
- c语言中.h文件中的宏定义,endian.h这个头文件里面的宏可以直接用么?
- 开源 java CMS - FreeCMS2.8 栏目页静态化参数
- 手机版html页面左右滑动切换页面,移动端手指左右滑动切换内容demo
- 使用H5实现机器人脸
- How is a Batch request handled in the backend
- mysql删除盘点表,用友U8数据库表名参照表修改号参考.doc
- Docker学习总结(33)——Docker环境下搭建 MySQL 主从复制
- autofac文档:事件
- extjs4 store传参使用方法
- 虚拟机win7纯净版镜像_win7中文版家vm虚拟机xp镜像庭普通版32位官方下载
- 计算机教室联想系统管理员密码,联想电脑EDU开放模式管理员密码忘记了怎么办...
- 华为手机如何分享文件至电脑
- hdu1576 A/B
- Python爬取股票数据存入mysql数据库,获取股票(最新、最高、今开、成交量、成交额、量比、换手率、涨幅等)支持多线程+数据库连接池
- biti_rainy的blog
- java模拟数据库压测_java模拟数据库缓存
- 微信用户免密免验证码登录
- 亚马逊、eBay、速卖通、lazada、Shopee等跨境平台,如何快速打造爆款
- 5000左右的linux笔记本推荐,5000左右,办公笔记本,有什么好的推荐
热门文章
- eclipse如何给main函数传参数
- ngx_lua模块API说明
- Python对数列进行全排列
- TensorFlow学习笔记(十七)tf.nn.conv2d
- Java 垃圾回收算法之G1
- Spark 框架安全认证实现
- MapReduce Job本地提交过程源码跟踪及分析
- 基于sentry的前端错误监控日志系统(部署sentry服务器/前端项目部署)-让前端最快的定位到生产问题...
- workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的)...
- float position的測试案例