这篇文章主要为大家详细介绍了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图层转场动画
基础教程推荐
猜你喜欢
- Android开发Compose集成高德地图实例 2023-06-15
- iOS开发使用XML解析网络数据 2022-11-12
- iOS Crash常规跟踪方法及Bugly集成运用详细介绍 2023-01-18
- iOS开发 全机型适配解决方法 2023-01-14
- Android实现短信验证码输入框 2023-04-29
- IOS获取系统相册中照片的示例代码 2023-01-03
- Android Compose自定义TextField实现自定义的输入框 2023-05-13
- iOS中如何判断当前网络环境是2G/3G/4G/5G/WiFi 2023-06-18
- Flutter进阶之实现动画效果(三) 2022-10-28
- MVVMLight项目Model View结构及全局视图模型注入器 2023-05-07