美文网首页
转场动画CATransition

转场动画CATransition

作者: 花落星辰 | 来源:发表于2016-11-19 14:57 被阅读0次

转场动画就是从一个场景以动画的形式过渡到另一个场景

步骤:

1.创建转场动

2.设置转场类型、子类型(可选)及其他属性画

3.设置转场后的新视图并添加动画到图层

常用的转场类型(注意私有API是苹果官方没有公开的动画类型,但是目前通过仍然可以使用):

//添加手势

UISwipeGestureRecognizer *leftSwipeGesture=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(leftSwipe:)];

leftSwipeGesture.direction=UISwipeGestureRecognizerDirectionLeft;

[self.view addGestureRecognizer:leftSwipeGesture];

UISwipeGestureRecognizer *rightSwipeGesture=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(rightSwipe:)];

rightSwipeGesture.direction=UISwipeGestureRecognizerDirectionRight;

[self.view addGestureRecognizer:rightSwipeGesture];

UISwipeGestureRecognizer *topSwipeGesture=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(topSwipe:)];

topSwipeGesture.direction=UISwipeGestureRecognizerDirectionUp;

[self.view addGestureRecognizer:topSwipeGesture];

UISwipeGestureRecognizer *bottomSwipeGesture=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(bottomSwipe:)];

bottomSwipeGesture.direction=UISwipeGestureRecognizerDirectionDown;

[self.view addGestureRecognizer:bottomSwipeGesture];

#pragmamark 向左滑动浏览下一张图片

-(void)leftSwipe:(UISwipeGestureRecognizer *)gesture{

[self transitionAnimation:1];

}

#pragmamark 向右滑动浏览上一张图片

-(void)rightSwipe:(UISwipeGestureRecognizer *)gesture{

[self transitionAnimation:2];

}

-(void)topSwipe:(UISwipeGestureRecognizer *)gesture{

[self transitionAnimation:3];

}

-(void)bottomSwipe:(UISwipeGestureRecognizer *)gesture{

[self transitionAnimation:4];

}

#pragmamark 转场动画

-(void)transitionAnimation:(NSInteger)direction{

//1.创建转场动画对象

CATransition *transition=[[CATransition alloc]init];

//2.设置动画类型,注意对于苹果官方没公开的动画类型只能使用字符串,并没有对应的常量定义

transition.type=@"rippleEffect";

BOOL bl = YES;

//设置子类型

if(direction ==1) {

transition.subtype=kCATransitionFromRight;

bl = YES;

}elseif(direction ==2) {

transition.subtype=kCATransitionFromLeft;

bl = NO;

}elseif(direction ==3) {

transition.subtype=kCATransitionFromTop;

bl = YES;

}else{

transition.subtype=kCATransitionFromBottom;

bl = NO;

}

//设置动画时常

transition.duration=1.0f;

//3.设置转场后的新视图添加转场动画

if(bl) {

currentIndex=(currentIndex+1)%IMAGE_COUNT;

}else{

currentIndex=(currentIndex-1+IMAGE_COUNT)%IMAGE_COUNT;

}

NSString *imageName=[NSString stringWithFormat:@"%d",(int)currentIndex];

_imageView.image = [UIImage imageNamed:imageName];

[_imageView.layer addAnimation:transition forKey:@"KCTransitionAnimation1"];

}

或者用UIView动画来实现转场:

#pragmamark 转场动画

-(void)transitionAnimation:(BOOL)isNext{

UIViewAnimationOptions option;

if(isNext) {

option=UIViewAnimationOptionCurveLinear|UIViewAnimationOptionTransitionFlipFromRight;

}else{

option=UIViewAnimationOptionCurveLinear|UIViewAnimationOptionTransitionFlipFromLeft;

}

[UIView transitionWithView:_imageView duration:1.0options:option animations:^{

_imageView.image=[self getImage:isNext];

} completion:nil];

}

结果:

相关文章

  • 核心动画(三)

    转场动画 一、CATransition简介 CATransition是CAAnimation的子类,用于做转场动画...

  • CATransition

    CATransition 父类是CAAnimation 转场动画——CATransition CATransiti...

  • iOS转场动画的三种方式

    1.CATransition CATransition是CAAnimation的子类,用于过渡动画或转场动画。为视...

  • iOS转场动画的三种方式

    1.CATransition CATransition是CAAnimation的子类,用于过渡动画或转场动画。为视...

  • iOS开发之转场动画

    CATransition是CAAnimationd的子类。 CATransition的type属性是转场动画类型:...

  • OC_转场动画的工具类(无交互)

    转场动画的学习 请看简书iOS CAAnimation之CATransition(自定义转场动画) 一、思路 . ...

  • OC_转场动画的工具类(无交互)

    转场动画的学习 请看简书iOS CAAnimation之CATransition(自定义转场动画) 一、思路 . ...

  • CATransition转场动画

    简介 CATransition又称转场动画,是CAAnimation的子类,可以直接使用 转场动画主要用于为图层提...

  • CATransition 转场动画

    做项目的时候,想加一点稍微炫酷一点的转场方式,就用上了。 CATransition *myTransition=[...

  • 转场动画CATransition

    转场动画就是从一个场景以动画的形式过渡到另一个场景 步骤: 1.创建转场动 2.设置转场类型、子类型(可选)及其他...

网友评论

      本文标题:转场动画CATransition

      本文链接:https://www.haomeiwen.com/subject/njqepttx.html