你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 詳解IOS圖層轉場動畫

詳解IOS圖層轉場動畫

編輯: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];

以上就是本文的全部內容,希望對大家的學習有所幫助。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved