美文网首页转场动画
自定义转场动画基本功能做法,小案例

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

作者: ProfessorFan | 来源:发表于2016-10-30 15:54 被阅读5973次


                                                                                                                               努力的人生才是美妙


    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;

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


    相关文章

      网友评论

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

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