iOS 转场动画

Inherits from
Conforms to
Framework
/System/Library/Frameworks/QuartzCore.framework
Availability
Available in iOS 2.0 and later.
Declared in
CAAnimation.h

       CATransition类实现层的转场动画。你可以从一组预定义的转换或者通过提供定制的CIFilter实例来指定转场效果。

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1.   //定义个转场动画  
  2. CATransition *animation = [CATransition animation];  
  3. //转场动画持续时间  
  4. animation.duration = 0.2f;  
  5. //计时函数,从头到尾的流畅度???  
  6. animation.timingFunction=UIViewAnimationCurveEaseInOut;  
  7. //转场动画类型  
  8. animation.type = kCATransitionReveal;  
  9. //转场动画将去的方向  
  10. animation.subtype = kCATransitionFromBottom;  
  11. //动画时你需要的实现  
  12. self.tabBarController.tabBar.hidden = YES;  
  13.   //添加动画 (转场动画是添加在层上的动画)  
  14. self.tabBarController.tabBar.layer addAnimation:animation forKey:@"animation"];  



说明:

duration:动画持续的时长。

 

timingFunction:没明白(谁明白的说明一下吧)

type:转场动画的类型。如果在一个自定义的转场动画中指定的过滤器属性,此属性将被忽略。

type共有四种类型:

NSString * const kCATransitionFade;//逐渐消失
NSString * const kCATransitionMoveIn;//移入
NSString * const kCATransitionPush;//平移(暂且这么称呼吧)
NSString * const kCATransitionReveal;//显露

默认类型为kCATransitionFade

subtype:转场动画将要去往的方向。

subtpye有四种类型:

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

默认方向是nil。

 

[self.tabBarController.tabBar.layer addAnimation:animation forKey:@"animation"];

转场动画是添加给layer的!

以下几种转场动画调用的苹果的私有API,注意咯,小心用了之后被苹果打回来。

[plain] view plaincopy在CODE上查看代码片派生到我的代码片
  1. switch (btn.tag) {  
  2. case 0:  
  3. animation.type = @"cube";//---立方体  
  4. break;  
  5. case 1:  
  6. animation.type = @"suckEffect";//103 吸走的效果  
  7. break;  
  8. case 2://前后翻转效果  
  9. animation.type = @"oglFlip";//When subType is "fromLeft" or "fromRight", it's the official one.  
  10. break;  
  11. case 3:  
  12. animation.type = @"rippleEffect";//110波纹效果  
  13. break;  
  14. case 4:  
  15. animation.type = @"pageCurl";//101翻页起来  
  16. break;  
  17. case 5:  
  18. animation.type = @"pageUnCurl";//102翻页下来  
  19. break;  
  20. case 6:  
  21. animation.type = @"cameraIrisHollowOpen ";//107//镜头开  
  22. break;  
  23. case 7:  
  24. animation.type = @"cameraIrisHollowClose ";//106镜头关  
  25. break;  
  26. default:  
  27. break;  
  28. }  



原文地址:https://www.cnblogs.com/yulang314/p/3753801.html