iOS 动画 —— CATransition

以前对转场的概念有点笼统,对 ViewController 层次的转场和 View 的转场(过渡)老是混淆,区分一下此处先对 View 转场 用 CATransition 实现动画,进行一个笔记。

对 CATransition 进行了解,它是CAAnimation的子类,用于做过渡动画或者转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。 其中最主要的就是 typesubType 这两个属性。

@property(copy) NSString *type;
@property(nullable, copy) NSString *subtype;

然后根据具体的类型展示我们要的效果。

  • Type: 动画的类型

    • 公共Type(官方的SDK其实只提供了四种过渡效果)
      CA_EXTERN NSString * const kCATransitionFade;
      CA_EXTERN NSString * const kCATransitionMoveIn;
      CA_EXTERN NSString * const kCATransitionPush;
      CA_EXTERN NSString * const kCATransitionReveal;
    • 私有的Type (私有API提供了其他很多非常炫的过渡动画),需要自己额外写的
      NSString *const kCATransitionCube = @"cube"; 
      NSString *const kCATransitionSuckEffect = @"suckEffect"; 
      NSString *const kCATransitionOglFlip = @"oglFlip"; 
      NSString *const kCATransitionRippleEffect = @"rippleEffect"; 
      NSString *const kCATransitionPageCurl = @"pageCurl"; 
      NSString *const kCATransitionPageUnCurl = @"pageUnCurl"; 
      NSString *const kCATransitionCameraIrisHollowOpen = @"cameraIrisHollowOpen";
      NSString *const kCATransitionCameraIrisHollowClose = @"cameraIrisHollowClose";
  • SubType: 动画类型的方向

    CA_EXTERN NSString * const kCATransitionFromRight;
    CA_EXTERN NSString * const kCATransitionFromLeft;
    CA_EXTERN NSString * const kCATransitionFromTop;
    CA_EXTERN NSString * const kCATransitionFromBottom;

为了加深印象,对 Type 的类型一一进行尝试, 只是将 type 的方式替换而已。

CATransition *animation = [CATransition animation];
animation.type = kCATransitionPush;//设置动画的类型
animation.subtype = kCATransitionFromRight; //设置动画的方向
animation.duration = 1.0f;
[testView.layer addAnimation:animation forKey:@"pushAnimation"];
  • kCATransitionFade;

kCATransitionFade.gif
  • kCATransitionMoveIn;

kCATransitionMoveIn.gif
  • kCATransitionPush;

kCATransitionPush.gif
  • kCATransitionReveal;

kCATransitionReveal.gif
  • kCATransitionCube;

@"cube".gif
  • kCATransitionSuckEffect;

@"suckEffect".gif
  • kCATransitionOglFlip;

@"oglFlip".gif
  • kCATransitionRippleEffect;

@"rippleEffect".gif
  • kCATransitionPageCurl;

@"pageCurl".gif
  • kCATransitionPageUnCurl;

@"pageUnCurl".gif
  • kCATransitionCameraIrisHollowOpen;

@"cameraIrisHollowOpen".gif
  • kCATransitionCameraIrisHollowClose;

@"cameraIrisHollowClose".gif

特别是 私有 API 中的 动画效果还是很炫的,可以一一尝试,还是蛮有意思的。

疑惑点,对于私有Type,审核的时候到底会不会被拒绝呢,官方肯定是说拒绝的,但是我看到网友说也有人成功啦,总的说来对私有 API 这块还是谨慎。




原文链接:http://www.jianshu.com/p/239cf81eb1eb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值