转场动画

自定义转场动画基本功能做法,小案例

2016-10-30  本文已影响5973人  ProfessorFan


                                                                                                                           努力的人生才是美妙


1.下面是本人对自定义转场动画的理解

A.首先我们要自定义一个转场的代理对象 (#import "TransitionAnimator.h")

B.接着我们需要在这个转场代理类中实现代理方法

2.转场动画的注意点

A.一般我们用做转场动画的代理对象就是继承NSObject 的,例如TransitionAnimator 继承自NSObject ,我们需要导入#import<UIKit/UIKit.h>头文件才能继续敲代码

B.将要展示的控制器,和当前控制器不要搞混淆

C.转场动画结束后,我们一定需要告诉系统,我们动画完成了,这句代码非常重要,否者界面一直卡住不动.

3.下面是一个小小的案例

下面是该例实现的具体细节

1.首先是程序运行开始的时候第一个界面(展示的控制器:ViewController)

实现思路:就是加载了一个storyboard 上面添加了一个按钮

2.当我们点击按钮的时候,

- (IBAction)clickButton:(UIButton *)sender {

FirstController *vc = [[FirstController alloc] init];

[self presentViewController:vc animated:YES completion:nil];

}

3.以上两部就是了白色控制器转化为橘色控制器

4.橘色控制器之所以可以拖动,是我在FirstController(橘色控制器)上面添加了手势,设置了锚点具体手势和锚点在这我就描述了.

关键代码:

这个是设置锚点的位置,和FirstController 控制器的frame  

//设置锚点,和位置

self.view.layer.anchorPoint = CGPointMake(0.5, 1.5);

self.view.frame = [UIScreen mainScreen].bounds;

设置角度的代码,还有transForm 的变换

//设置旋转的角度

CGFloat offserX = offsetPoint.x;

//计算旋转的角度

CGFloat scale = offserX * 1.0 /sender.view.bounds.size.width;

CGFloat angele = scale * M_PI_2;

panView.transform = CGAffineTransformMakeRotation(angele);

panView.transform = CGAffineTransformIdentity;

接下来是转场动画代理的实现代码


上一篇下一篇

猜你喜欢

热点阅读