iOS圖層轉場動畫

  1 動畫類型
  2 
  3 
  4 CAAnimation的子類,用於作轉場動畫,可以爲層提供移出屏幕和移入屏幕的動畫效果。iOS比Mac OS X的轉場動畫效果少一點
  5 UINavigationController就是經過CATransition實現了將控制器的視圖推入屏幕的動畫效果
  6 屬性解析:
  7 type:動畫過渡類型
  8 subtype:動畫過渡方向
  9 startProgress:動畫起點(在總體動畫的百分比)
 10 endProgress:動畫終點(在總體動畫的百分比)
 11 
 12 
 13  
 14 
 15 
 16 /* 過渡效果
 17 
 18  fade     //交叉淡化過渡(不支持過渡方向) kCATransitionFade
 19 
 20  push     //新視圖把舊視圖推出去  kCATransitionPush
 21 
 22  moveIn   //新視圖移到舊視圖上面   kCATransitionMoveIn
 23 
 24  reveal   //將舊視圖移開,顯示下面的新視圖  kCATransitionReveal
 25 
 26  cube     //立方體翻滾效果
 27 
 28  oglFlip  //上下左右翻轉效果
 29 
 30  suckEffect   //收縮效果,如一塊布被抽走(不支持過渡方向)
 31 
 32  rippleEffect //滴水效果(不支持過渡方向)
 33 
 34  pageCurl     //向上翻頁效果
 35 
 36  pageUnCurl   //向下翻頁效果
 37 
 38  cameraIrisHollowOpen  //相機鏡頭打開效果(不支持過渡方向)
 39 
 40  cameraIrisHollowClose //相機鏡頭關上效果(不支持過渡方向)
 41 
 42 */
 43 
 44    
 45 
 46 /* 過渡方向
 47 
 48  kCATransitionFromRight
 49 
 50  kCATransitionFromLeft
 51 
 52  kCATransitionFromBottom
 53 
 54 
 55 
 56 
 57 
 58 
 59 
 60 
 61 
 62 
 63 //轉場動畫--》是針對某個view的圖層進行轉場動畫
 64 #import "ViewController.h"
 65 #import <QuartzCore/QuartzCore.h>
 66 
 67 @interface ViewController ()
 68 {
 69     UIView *_lastview;
 70     BOOL flag;
 71 }
 72 @end
 73 
 74 @implementation ViewController
 75 
 76 - (void)viewDidLoad
 77 {
 78     [super viewDidLoad];
 79     flag=true;
 80     UIView *view=[[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
 81     view.backgroundColor=[UIColor redColor];
 82     [self.view addSubview:view];
 83     [view release];
 84     _lastview=view;
 85     // Do any additional setup after loading the view, typically from a nib.
 86 }
 87 
 88 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
 89     if(flag){
 90         _lastview.backgroundColor=[UIColor yellowColor];
 91         flag=false;
 92     
 93     }
 94     else{
 95         _lastview.backgroundColor=[UIColor redColor];
 96         flag=true;
 97     }
 98     
 99     //轉場動畫--就是對某個view進行動畫切換。
100     //1:若是是控制器之間的切換,其實window上view進行切換
101     CATransition *transion=[CATransition animation];
102     //設置轉場動畫的類型
103     transion.type=@"pageCurl";
104     //設置轉場動畫的方向
105     transion.subtype=@"fromLeft";
106     
107     //把動畫添加到某個view的圖層上
108     [self.view.layer addAnimation:transion forKey:nil];
109     
110 }

控制器轉場app

 1 UIApplication *app=[UIApplication sharedApplication];
 2     AppDelegate *dd=app.delegate;
 3     
 4         MyViewController *my=[[MyViewController alloc] init];
 5     //切換根控制器,其實把視圖控制器的view在window上切換。因此在轉場動畫要做用在window上
 6     dd.window.rootViewController=my;
 7     CATransition *trans=[CATransition animation];
 8    
 9     trans.type=@"pageCurl";
10     trans.subtype=@"fromTop";
11    
12     [dd.window.layer addAnimation:trans forKey:nil];
13     
14     [my release];
相關文章
相關標籤/搜索