iOS 页面之间的转场动画控制器间的转换
CATransition类实现层的转场动画。你可以从一组预定义的转换或者通过提供定制的CIFilter实例来指定转场效果。
例如:控制器之间的跳转
LoginViewController *myVC = [[LoginViewController alloc]init];
myVC.tuichu = @"tuichu";
//创建动画
CATransition *animation = [CATransition animation];
//设置运动轨迹的速度
animation.timingFunction = UIViewAnimationCurveEaseInOut;
//设置动画类型为立方体动画
animation.type = @"cube";
//设置动画时长
animation.duration =0.5f;
//设置运动的方向
animation.subtype =kCATransitionFromRight;
//控制器间跳转动画
[[UIApplication sharedApplication].keyWindow.layer addAnimation:animation forKey:nil];
[self presentViewController:myVC animated:NO completion:nil];
//例如;控制器中添加 view
CATransition *animation = [CATransition animation];
animation.timingFunction = UIViewAnimationCurveEaseInOut;
animation.type = @"rippleEffect"; //声波效果
animation.duration = 0.3;
animation.subtype = kCATransitionFromBottom;
[self.view.layer addAnimation:animation forKey:nil];
[self.view addSubview:view];
//定义个转场动画
CATransition *animation = [CATransition animation];
//转场动画持续时间
animation.duration = 0.2f;
//计时函数,从头到尾的流畅度???
animation.timingFunction=UIViewAnimationCurveEaseInOut;
//转场动画类型
animation.type = kCATransitionReveal;
//转场动画将去的方向
animation.subtype = kCATransitionFromBottom;
//动画时你需要的实现
self.tabBarController.tabBar.hidden = YES;
//添加动画 (转场动画是添加在层上的动画)
self.tabBarController.tabBar.layer addAnimation:animation forKey:@"animation"];
说明:
duration:动画持续的时长。
timingFunction:没明白(谁明白的说明一下吧)
type:转场动画的类型。如果在一个自定义的转场动画中指定的过滤器属性,此属性将被忽略。
type共有四种类型:
NSString * const kCATransitionFade;//逐渐消失
NSString * const kCATransitionMoveIn;//移入
NSString * const kCATransitionPush;//平移(暂且这么称呼吧)
NSString * const kCATransitionReveal;//显露
默认类型为kCATransitionFade。
subtype:转场动画将要去往的方向。
subtpye有四种类型:
NSString * const kCATransitionFromRight;
NSString * const kCATransitionFromLeft;
NSString * const kCATransitionFromTop;
NSString * const kCATransitionFromBottom;
默认方向是nil。
[self.tabBarController.tabBar.layer addAnimation:animation forKey:@"animation"];
转场动画是添加给layer的!
switch (btn.tag) {
case 0:
animation.type = @"cube";//---立方体
break;
case 1:
animation.type = @"suckEffect";//103 吸走的效果
break;
case 2://前后翻转效果
animation.type = @"oglFlip";//When subType is "fromLeft" or "fromRight", it's the official one.
break;
case 3:
animation.type = @"rippleEffect";//110波纹效果
break;
case 4:
animation.type = @"pageCurl";//101翻页起来
break;
case 5:
animation.type = @"pageUnCurl";//102翻页下来
break;
case 6:
animation.type = @"cameraIrisHollowOpen ";//107//镜头开
break;
case 7:
animation.type = @"cameraIrisHollowClose ";//106镜头关
break;
default:
break;
}
iOS 页面之间的转场动画控制器间的转换的更多相关文章
- iOS 页面之间的专长动画控制器间的转换
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 24.0px; font: 14.0px "Heiti SC Light" ...
- iOS 7 present/dismiss转场动画
前言 iOS 7以后提供了自定义转场动画的功能,我们可以通过遵守协议完成自定义转场动画.本篇文章讲解如何实现自定义present.dismiss自定义动画. 效果图 本篇文章实现的动画切换效果图如下: ...
- IOS 页面之间的传值(主讲delegate)
IOS的Delegate,通俗一点说就是页面之间的传值. 总结一下现在知道的IOS页面之间传值的方式有三种 1.使用NSNotification发送通知的传值 主要是通过NSNotificationC ...
- 【Swift】IOS开发中自定义转场动画
在IOS开发中,我们model另外一个控制器的时候,一般都使用默认的转场动画. 其实我们可以自定义一些转场动画.达到不同的转场效果. 步骤如下:(photoBrowser是目标控制器) 1.在源控制器 ...
- iOS-自定义Model转场动画-仿酷我音乐播放器效果
周末,闲来无事,仿写了酷我音乐播放器效果: 效果图如下: 实现思路: 1.实现手势处理视图旋转 2.自定义Model动画: 1.手势是利用了一个UIPanGestureRecognizer手势: 注意 ...
- ViewController 之间设置转场动画
AddOrEditViewController *addOrEdit = [[AddOrEditViewController alloc] init]; CATransition *transitio ...
- IOS 页面之间的跳转
1.UINavigationController popToViewController 对应popViewControllerAnimated: 也可以使用: [self.navigationCon ...
- iOS:探究视图控制器的转场动画
一.介绍 在iOS开发中,转场动画的使用无处不见,不只是我们自己更多的使用UIViewblock动画实现一个转场动画,其实,在我们实现VC控制器跳转的时候都是转场动画的实现,例如标签栏控制器的切换.模 ...
- iOS CATransition 自定义转场动画
https://www.jianshu.com/p/39c051cfe7dd CATransition CATransition 是CAAnimation的子类(如下图所示),用于控制器和控制器之间的 ...
随机推荐
- pacman详解及常见问题
安装软件包:软件包有很多可选依赖,是为软件提供额外功能, 安装软件时pacman 会输出可选依赖, 但不会在 pacman.log中,浏览安装软件的可选以来可用pacman -Si得到可选依赖的简短描 ...
- Android学习之键盘事件
java代码: package com.example.keyboardtest; import android.app.Activity; import android.os.Bundle; imp ...
- TerraGate SFS 4.5 版本 发布矢量数据使用的Cache数据如何再返回成shapefile文件
TerraGate SFS 4.5 版本 发布矢量数据使用的Cache数据如何再返回成shapefile文件? 两年前帮一个朋友解决过这个问题: 如果原来用4.5版本的时候,在网络环境下,为了提升调用 ...
- oracle 相除后保留指定位数小数round()
) xxx from dual; XXX---------- 3.8871
- 液晶屏MIPI接口与LVDS接口区别(总结)
液晶屏接口类型有LVDS接口.MIPI DSIDSI接口(下文只讨论液晶屏LVDS接口,不讨论其它应用的LVDS接口,因此说到LVDS接口时无特殊说明都是指液晶屏LVDS接口),它们的主要信号成分都是 ...
- ADO.NET分享
看到<c#从入门到精通(第三版)>书中对ado.net里几种方法打的比方,很有意思就发一下. 1)这张图中,把数据比作水,储存了大量数据. 2)Connection对象好像进水龙头,插在水 ...
- 转:判断js中的数据类型的几种方法
判断js中的数据类型有一下几种方法:typeof.instanceof. constructor. prototype. $.type()/jquery.type(),接下来主要比较一下这几种方法的异 ...
- SQLAlchemy模块的使用教程
数据库表是一个二维表,包含多行多列.把一个表的内容用Python的数据结构表示出来的话,可以用一个list表示多行,list的每一个元素是tuple,表示一行记录,比如,包含id和name的user表 ...
- Spring+SpringMVC+MyBatis+easyUI整合进阶篇(六)一定要RESTful吗?
作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 写在前面的话 这个问题看起来就显得有些萌,或者说类似的问题都有些不靠 ...
- ARM-GPIO
操作GPIO有三种方法: 调用库函数读取IO的输入电平:uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef*GPIOx,uint16_t GPIO_pin): 操作寄 ...