首页 > 代码库 > iOS 转场动画

iOS 转场动画

 

Inherits from
CAAnimation : NSObject
Conforms to
NSCoding (CAAnimation)
NSCopying (CAAnimation)
CAAction (CAAnimation)
CAMediaTiming (CAAnimation)
NSObject (NSObject)
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. }