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];