CA_EXTERN NSString * const kCATransitionFromRight //動畫從右往左動畫
CA_EXTERN NSString * const kCATransitionFromLeft //動畫從左往右atom
CA_EXTERN NSString * const kCATransitionFromTop //動畫從下往上spa
CA_EXTERN NSString * const kCATransitionFromBottom //動畫從上往下code
具體實例以下:orm
實現功能:往工程中導入5張圖片素材,建立圖像視圖控件,而後經過向左或向右掃動手勢實現圖像視圖中圖片的輪換,即實現轉場動畫。blog
代碼以下:索引
//導入圖片素材事件
//聲明屬性圖片
#import "ViewController.h" @interface ViewController () @property (strong,nonatomic)UIImageView *imageView;//圖像視圖 @property (assign,nonatomic)NSInteger index; //當前圖片的索引 @end
//初始化,建立圖像視圖控件並設置圖片,同時建立掃動手勢,添加掃動事件ip
- (void)viewDidLoad { [super viewDidLoad]; //設置當前圖片爲第一張 self.index = 1; //初始化圖像視圖 self.imageView = [[UIImageView alloc]initWithFrame:self.view.frame]; self.imageView.contentMode = UIViewContentModeScaleAspectFit; [self.imageView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"s%ld.jpg",self.index]]]; //容許圖像視圖進行用戶交互 self.imageView.userInteractionEnabled = YES; [self.view addSubview:self.imageView]; //建立掃動手勢 UISwipeGestureRecognizer *leftswipe = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipe:)]; //設置掃動方向爲向左掃 leftswipe.direction = UISwipeGestureRecognizerDirectionLeft; //添加掃動手勢 [self.imageView addGestureRecognizer:leftswipe]; //建立掃動手勢 UISwipeGestureRecognizer *rightswipe = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipe:)]; //設置掃動方向爲向右掃 rightswipe.direction = UISwipeGestureRecognizerDirectionRight; //添加掃動手勢 [self.imageView addGestureRecognizer:rightswipe]; }
//處理掃動手勢事件,進行轉場動畫的建立並執行動畫
#pragma mark -掃動手勢 -(void)swipe:(UISwipeGestureRecognizer *)sender { //根據手勢的方向改變圖片的索引,一共5張圖片 if (sender.direction == UISwipeGestureRecognizerDirectionLeft)//向左掃 { if (self.index >1 ) { self.index--; } else { self.index = 5; } } else //向右掃 { if (self.index <5) { self.index++; } else { self.index = 1; } } //添加轉場動畫 CATransition *transition = [[CATransition alloc]init]; //過渡類型類立方體翻轉效果 transition.type = @"cube"; //過渡方向爲從下往上翻轉 transition.subtype = kCATransitionFromBottom; //動畫持續時間 transition.duration = 1.0f; //添加轉場動畫 [self.imageView.layer addAnimation:transition forKey:@"transition"]; //設置每一次轉場動畫後的圖像視圖的圖片 [self.imageView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"s%ld.jpg",self.index]]]; }
演示結果以下:
開始時: 左掃或者右掃時:動畫立體式的從上往下翻轉