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