CATransition转场动画

好久没来写文章了,今天来讲讲转场动画吧,可能没有接触过转场动画的人会觉得这是个很复杂的东西,当时我也是这样,其实看过代码后发现真的很简单,先贴出来代码吧:

- (IBAction)swipe:(UISwipeGestureRecognizer *)sender {
    self.index++;
    
    if (self.index == 6) {
        self.index =1;
    }
    
    NSString * imageName = [NSString stringWithFormat:@"%d.jpg",self.index];
    
    CATransition * anim = [[CATransition alloc]init];
    //将旧视图移开,显示下面的新视图
    anim.type = @"reveal";
    //立方体翻滚效果
    anim.type = @"cube";
    //相机镜头关闭效果
    anim.type = @"cameraIrisHollowClose";
    //相机镜头打开效果
    anim.type = @"cameraIrisHollowOpen";
    //水滴效果
    anim.type = @"rippleEffect";
    //向下翻页效果
    anim.type = @"pageUnCurl";
    //向上翻页效果
    anim.type = @"pageUnCurl";
    //收缩效果,如一块布被抽走
    anim.type = @"suckEffect";
    //交叉淡化过渡
    anim.type = @"fade";
    //上下左右翻转效果
    anim.type = @"oglFlip";
    //新视图把旧视图推出去
    anim.type = @"push";
    anim.type = @"cube";
    
    //根据不同的手势 设置不同的动画方向
    if (sender.direction == UISwipeGestureRecognizerDirectionLeft) {
        anim.subtype = kCATransitionFromRight;
    }else
    {
    anim.subtype = kCATransitionFromLeft;
    }
    
    [self.imageView.layer addAnimation:anim forKey:nil];
    
    self.imageView.image = [UIImage imageNamed:imageName];
}

上面的这个方法是一个手势,我是通过storyboard拖得手势(方便),你可以自己给图片加一个手势,转场动画和其他的核心动画是差不多的 都是添加在layer层上,它的最重要的寿星就是type,根据不同的type可以展现出不同的转场动画,我在代码里面都有详细的注释,其实就是这么简单,具体效果可以下载我的demo查看一下:https://github.com/wxh794708907/YJYYCATransitionDemo.git

你可能感兴趣的:(CATransition转场动画)