iOS 动画
CATransition 动画设置两个 UIView
- UIView *magentaView =[[UIView alloc]initWithFrame:self.view.bounds];
- magentaView.backgroundColor =[UIColor magentaColor];
- [self.view addSubview:magentaView];
- UIView * gtayView =[[UIView alloc]initWithFrame:self.view.bounds];
- gtayView.backgroundColor =[UIColor lightGrayColor];
- [self.view addSubview:gtayView];
- // 提交
- -(void)add{
- // 开始动画
- [UIView beginAnimations:@"animation" context:nil];
- [UIView setAnimationDuration:1.0];
- [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:YES];
- [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
- [self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
- // 提交动画
- [UIView commitAnimations];
- }
- // 翻页
- -(void)curl
- {
- // 开始动画
- [UIView beginAnimations:@"animation" context:nil];
- [UIView setAnimationDuration:1.0f];
- [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
- [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
- [self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
- // 提交动画
- [UIView commitAnimations];
- }
- // 移入
- -(void)move
- {
- CATransition *strasiton =[CATransition animation];
- strasiton.duration = 2.0f;
- // 使用 kCATransitionMoveIn 动画
- strasiton.type = kCATransitionMoveIn;
- // 指定动画方向, 从左向右
- strasiton.subtype = kCATransitionFromLeft;
- [self.view.layer addAnimation:strasiton forKey:@"animation"];
- [self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
- }
- // 揭开
- -(void)reveal
- {
- CATransition *strasiton =[CATransition animation];
- strasiton.duration = 2.0f;
- // 使用 kCATransitionReveal 动画
- strasiton.type = kCATransitionReveal;
- strasiton.subtype = kCATransitionFromTop;
- [self.view.layer addAnimation:strasiton forKey:@"animation"];
- [self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
- }
- // 立方体
- -(void)cube
- {
- CATransition *trasiton =[CATransition animation];
- trasiton.duration = 2.0f;
- trasiton.type = @"cube";
- trasiton.subtype = kCATransitionFromLeft;
- [self.view.layer addAnimation:trasiton forKey:@"animation"];
- [self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
- }
- // 吸入
- -(void)suck
- {
- CATransition *trasiton =[CATransition animation];
- trasiton.duration = 2.0f;
- trasiton.type = @"suckEffect";
- trasiton.subtype = kCATransitionFromLeft;
- [self.view.layer addAnimation:trasiton forKey:@"animation"];
- [self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
- }
- // 翻转
- -(void)oglFlip
- {
- CATransition *trasiton =[CATransition animation];
- trasiton.duration = 2.0f;
- trasiton.type = @"oglFlip";
- trasiton.subtype = kCATransitionFromLeft;
- [self.view.layer addAnimation:trasiton forKey:@"animation"];
- [self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
- }
- // 水波
- -(void)ripple
- {
- CATransition *trasiton =[CATransition animation];
- trasiton.duration = 2.0f;
- trasiton.type = @"rippleEffect";
- trasiton.subtype = kCATransitionFromLeft;
- [self.view.layer addAnimation:trasiton forKey:@"animation"];
- [self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
- }
来源: http://www.92to.com/bangong/2017/02-27/17738059.html