Ios转场动画,type动画类型,跳转控制器动画

转场动画是针对view图层的动画

#import "DYViewController.h"

@interface DYViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imageView;

@property (nonatomic, assign) int index;

@end

@implementation DYViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
 
    _index = 1;
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    _index++;
    
    if (_index == 10) {
        _index = 1;
    }
    NSString *fileName = [NSString stringWithFormat:@"%d",_index];
    _imageView.image = [UIImage imageNamed:fileName];
    
    CATransition *anim = [CATransition animation];
    
    anim.type = @"pageCurl";
    
    anim.subtype = kCATransitionFromLeft;
    anim.startProgress = 0.5;
    
    anim.duration = 2;
    
    [_imageView.layer addAnimation:anim forKey:nil];
}

视图控制器直接切换动画

只需要在window的layer上添加转场动画即可实现

@interface KKTestController ()

@end

@implementation KKTestController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor redColor];
    UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
    btn.backgroundColor  = [UIColor yellowColor ];
    [btn addTarget:self action:@selector(testA:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
}


-(void)testA:(id)sender {
    KKTabBarController *test = [[KKTabBarController alloc] init];
    
    CATransition *anim = [CATransition animation];
    
    anim.type = @"oglFlip";
    
    anim.subtype = kCATransitionFromRight;
    
    anim.duration = 2;
 
    UIWindow *window = [UIApplication sharedApplication].keyWindow;
    
    [window.layer addAnimation:anim forKey:nil];
    window.rootViewController = test;

    
    
    
}
属性解析:
type:动画过渡类型
subtype:动画过渡方向
startProgress:动画起点(在整体动画的百分比)
endProgress:动画终点(在整体动画的百分比)


/*type属性 过渡效果
 fade     //交叉淡化过渡(不支持过渡方向) kCATransitionFade
 push     //新视图把旧视图推出去  kCATransitionPush

 moveIn   //新视图移到旧视图上面   kCATransitionMoveIn
 reveal   //将旧视图移开,显示下面的新视图  kCATransitionReveal
 cube     //立方体翻滚效果
 oglFlip  //上下左右翻转效果
 suckEffect   //收缩效果,如一块布被抽走(不支持过渡方向)
 rippleEffect //滴水效果(不支持过渡方向)
 pageCurl     //向上翻页效果
 pageUnCurl   //向下翻页效果
 cameraIrisHollowOpen  //相机镜头打开效果(不支持过渡方向)
 cameraIrisHollowClose //相机镜头关上效果(不支持过渡方向)
*/
   
/*subtype 过渡方向

 kCATransitionFromRight
 kCATransitionFromLeft
 kCATransitionFromBottom


你可能感兴趣的:(Ios转场动画,type动画类型,跳转控制器动画)