ios圖層轉場動畫


動畫類型
CAAnimation的子類,用於做轉場動畫,能夠為層提供移出屏幕和移入屏幕的動畫效果。iOS比Mac OS X的轉場動畫效果少一點
UINavigationController就是通過CATransition實現了將控制器的視圖推入屏幕的動畫效果
屬性解析:
type:動畫過渡類型
subtype:動畫過渡方向
startProgress:動畫起點(在整體動畫的百分比)
endProgress:動畫終點(在整體動畫的百分比)
 
         

 

 
         
/* 過渡效果
 fade     //交叉淡化過渡(不支持過渡方向) kCATransitionFade
 push     //新視圖把舊視圖推出去  kCATransitionPush
 moveIn   //新視圖移到舊視圖上面   kCATransitionMoveIn
 reveal   //將舊視圖移開,顯示下面的新視圖  kCATransitionReveal
 cube     //立方體翻滾效果
 oglFlip  //上下左右翻轉效果
 suckEffect   //收縮效果,如一塊布被抽走(不支持過渡方向)
 rippleEffect //滴水效果(不支持過渡方向)
 pageCurl     //向上翻頁效果
 pageUnCurl   //向下翻頁效果
 cameraIrisHollowOpen  //相機鏡頭打開效果(不支持過渡方向)
 cameraIrisHollowClose //相機鏡頭關上效果(不支持過渡方向)
*/
   
/* 過渡方向
 kCATransitionFromRight
 kCATransitionFromLeft
 kCATransitionFromBottom



//轉場動畫--》是針對某個view的圖層進行轉場動畫
#import
"ViewController.h" #import <QuartzCore/QuartzCore.h> @interface ViewController () { UIView *_lastview; BOOL flag; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; flag=true; UIView *view=[[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)]; view.backgroundColor=[UIColor redColor]; [self.view addSubview:view]; [view release]; _lastview=view; // Do any additional setup after loading the view, typically from a nib. } -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ if(flag){ _lastview.backgroundColor=[UIColor yellowColor]; flag=false; } else{ _lastview.backgroundColor=[UIColor redColor]; flag=true; } //轉場動畫--就是對某個view進行動畫切換。 //1:如果是控制器之間的切換,其實window上view進行切換 CATransition *transion=[CATransition animation]; //設置轉場動畫的類型 transion.type=@"pageCurl"; //設置轉場動畫的方向 transion.subtype=@"fromLeft"; //把動畫添加到某個view的圖層上 [self.view.layer addAnimation:transion forKey:nil]; }

 控制器直接切換動畫

    
    UIApplication *app=[UIApplication sharedApplication];
    AppDelegate *dd=app.delegate;
    
        MyViewController *my=[[MyViewController alloc] init];
    //切換根控制器,其實把視圖控制器的view在window上切換。所以在轉場動畫要作用在window上
    dd.window.rootViewController=my;
    CATransition *trans=[CATransition animation];
   
    trans.type=@"pageCurl";
    trans.subtype=@"fromTop";
   
    [dd.window.layer addAnimation:trans forKey:nil];
    
    [my release];

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM