iOS CATransition动画Demo

在APP开发过程中,为了将APP以最美的视觉展现在用户面前,有时候动画或许是不错的选择,iOS提供了CATransition和CAAnimation等动画类,山人才疏学浅,给大家分享一下CATransition使用时的一些方法。
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    UIScrollView * scroll;  //定义一个滚动视图,注意,CATransition动画是过渡动画,用于切换过渡,添加在视图上的,初始化的啥啥的大家自己写上吧。
    CATransition *transition = [CATransition animation];  // 初始化一个动画对象
    transition.duration = 0.4;  // 动画持续的时间
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    transition.type = kCATransitionFade;  // 动画的类型,NSString型,官方的动画效果很难找,山人收集了一些动画效果,下面给大家展示
    transition.subtype = kCATransitionFromTop;  // 动画的子类型,用来表示某些如push的动画方向
    [scroll.layer addAnimation:transition forKey:nil];  // 将动画添加到view得layer上。注意,动画都是在layer上出效果的,当切换滚动视图是就会出现效果
    
}



官方定义的动画有以下几种

CA_EXTERN NSString * const kCATransitionFade
    __OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN NSString * const kCATransitionMoveIn
    __OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN NSString * const kCATransitionPush
    __OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN NSString * const kCATransitionReveal
    __OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);

/* Common transition subtypes. */

CA_EXTERN NSString * const kCATransitionFromRight
    __OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN NSString * const kCATransitionFromLeft
    __OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN NSString * const kCATransitionFromTop
    __OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
CA_EXTERN NSString * const kCATransitionFromBottom
    __OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);





大家可以看到就可怜巴巴的四个效果,长时间的搜集,我又找到了几种,以下

@"cameraIris",
@"cube",   // 立方体
@"fade",   //淡入
@"moveIn",
@"oglFilp",
@"pageCurl",
@"pageUnCurl",
@"push",
@"reveal",
@"rippleEffect", // 水波
@"suckEffect"


前面说过,动画的类型是字符串类型的,所以将上面列出的字符串直接写在type后,就可以实现响应的效果

transition.type = @"rippleEffect";

当然这些动画同样可以用在viewController 的过渡中,

<pre name="code" class="objc">- (void)push
{
    ViewController * view = [[ViewController alloc] init];
    view.modalTransitionStyle = transition;
    [self presentViewController:view animated:YES completion:^{
        
    }];
}


上面这种过渡方式是不带导航的,如果要带导航push方法过渡,则如下

- (void)push
{
    [self.navigationController.view.layer addAnimation:transition forKey:nil];
    ViewController * view = [[ViewController alloc] init];
    [self.navigationController pushViewController:view animated:NO];

}

大概就这么多了,多谢支持。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值