CATransition实现动画

本文详细介绍CATransition动画的使用方法及属性设置,包括不同类型的过渡效果,如交叉淡化、新视图移动等,并提供了具体的实现样例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CATransition继承自CAAnimation,他是在layer实现动画效果,它比UIView实现的动画类型要多,可以实现:交叉淡化过渡 、新视图移到旧视图上面 、新视图把旧视图推出去 、将旧视图移开,显示下面的新视图 

需要在frameworks中添加QuartzCore.framework

在接口程序中加上头文件   #import <QuartzCore/QuartzCore.h>


CATransition的type属性

1.#define定义的常量
kCATransitionFade 交叉淡化过渡
kCATransitionMoveIn 新视图移到旧视图上面
kCATransitionPush 新视图把旧视图推出去
kCATransitionReveal 将旧视图移开,显示下面的新视图

2.用字符串表示
pageCurl 向上翻一页
pageUnCurl 向下翻一页
rippleEffect 滴水效果
suckEffect 收缩效果,如一块布被抽走
cube 立方体效果
oglFlip 上下翻转效果 将旧视图移开,显示下面的新视图 

sample code:

<span style="font-size:18px;">    CATransition *animation=[CATransition animation];
    animation.duration=0.6;
    animation.timingFunction= [CAMediaTimingFunction functionWithName:@"easeInEaseOut"];
    animation.type = kCATransitionPush;
    animation.subtype = kCATransitionFromLeft;
    [self.MyView.layer addAnimation:animation forKey:@"test" ];
[self.MyView exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
</span>

用Transition实现pushViewController效果:

    
    CATransition *animation = [CATransition animation];
    animation.duration = 0.6;
    animation.timingFunction = [CAMediaTimingFunction functionWithName:@"easeInEaseOut"];
    animation.type = kCATransitionMoveIn;
    animation.subtype = kCATransitionFromLeft;
    
    [self.navigationController.view.layer addAnimation:animation forKey:@"test"];
    
    UIViewController *viewCtrl = [[UIViewController alloc] init];
    [self.navigationController pushViewController:viewCtrl animated:NO];



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值