详解IOS图层转场动画
更新时间:2016年02月14日 15:33:16 投稿:lijiao
这篇文章主要为大家详细介绍了IOS图层转场动画, CATransition类实现层的转场动画,能够为层提供移出屏幕和移入屏幕的动画效果,感兴趣的小伙伴们可以参考一下
CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。iOS比Mac OS X的转场动画效果少一点
UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果
属性解析:
- type:动画过渡类型
- subtype:动画过渡方向
- startProgress:动画起点(在整体动画的百分比)
- endProgress:动画终点(在整体动画的百分比)
具体代码:
/* 过渡效果
fade //交叉淡化过渡(不支持过渡方向) kCATransitionFade
push //新视图把旧视图推出去 kCATransitionPush
moveIn //新视图移到旧视图上面 kCATransitionMoveIn
reveal //将旧视图移开,显示下面的新视图 kCATransitionReveal
cube //立方体翻滚效果
oglFlip //上下左右翻转效果
suckEffect //收缩效果,如一块布被抽走(不支持过渡方向)
rippleEffect //滴水效果(不支持过渡方向)
pageCurl //向上翻页效果
pageUnCurl //向下翻页效果
cameraIrisHollowOpen //相机镜头打开效果(不支持过渡方向)
cameraIrisHollowClose //相机镜头关上效果(不支持过渡方向)
*/
/* 过渡方向
kCATransitionFromRight
kCATransitionFromLeft
kCATransitionFromBottom
//转场动画--》是针对某个view的图层进行转场动画
#import "ViewController.h"
#import <QuartzCore/QuartzCore.h>
@interface ViewController ()
{
UIView *_lastview;
BOOL flag;
}
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
flag=true;
UIView *view=[[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
view.backgroundColor=[UIColor redColor];
[self.view addSubview:view];
[view release];
_lastview=view;
// Do any additional setup after loading the view, typically from a nib.
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
if(flag){
_lastview.backgroundColor=[UIColor yellowColor];
flag=false;
}
else{
_lastview.backgroundColor=[UIColor redColor];
flag=true;
}
//转场动画--就是对某个view进行动画切换。
//1:如果是控制器之间的切换,其实window上view进行切换
CATransition *transion=[CATransition animation];
//设置转场动画的类型
transion.type=@"pageCurl";
//设置转场动画的方向
transion.subtype=@"fromLeft";
//把动画添加到某个view的图层上
[self.view.layer addAnimation:transion forKey:nil];
}
控制器直接切换动画
UIApplication *app=[UIApplication sharedApplication];
AppDelegate *dd=app.delegate;
MyViewController *my=[[MyViewController alloc] init];
//切换根控制器,其实把视图控制器的view在window上切换。所以在转场动画要作用在window上
dd.window.rootViewController=my;
CATransition *trans=[CATransition animation];
trans.type=@"pageCurl";
trans.subtype=@"fromTop";
[dd.window.layer addAnimation:trans forKey:nil];
[my release];
以上就是本文的全部内容,希望对大家的学习有所帮助。
相关文章
iOS App开发中的UIPageControl分页控件使用小结
UIPageControl分页控件的例子简单来说即是我们平时翻动多个桌面页时及底部带有的圆点页码标注,这里我们来看一下iOS App开发中的UIPageControl分页控件使用小结,需要的朋友可以参考下2016-06-06
Objective-C中NSNumber与NSDictionary的用法简介
这篇文章主要介绍了Objective-C中NSNumber与NSDictionary的用法简介,虽然Objective-C即将不再是iOS的主流开发语言...well,需要的朋友可以参考下2015-09-09
解决SDK注入权限验证安卓正常,IOS出现config fail的方法
这篇文章主要介绍了解决SDK注入权限验证安卓正常,IOS出现config fail的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-06-06
iOS经验之初始化方法中不该设置self.view的属性浅析
这篇文章主要给大家介绍了关于iOS经验之初始化方法中不该设置self.view的属性的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧2018-09-09


最新评论