设为首页 加入收藏

TOP

View的放大->旋转->还原动画(一)
2017-10-16 18:18:45 】 浏览:11179
Tags:View 放大 -> 旋转 还原 动画

以UIButton为例,创建一个类,继承于UIButton 

/*页面的创建用storyboard*/

 .h文件             

@interface PTSRecommendButton : UIButton

- (void)viewTransform;

@end

.m文件

@implementation PTSRecommendButton

- (void)viewTransform {

    //

    [self.layer setAnchorPoint:CGPointMake(1, 0.5)];

    CGRect btnFrame = self.frame;

    //设置中心点  AnchorPoint默认是0.5

    btnFrame.origin.x += btnFrame.size.width / 2 ;

    self.frame = btnFrame;

    //放大

    [UIView transitionWithView:self duration:0.5 options:UIViewAnimationOptionAllowUserInteraction animations:^{

   //因为是button在动画之行的过程点击如果没有页面跳转的操作。要设置不能狗被点击 否则会引起动画方法的覆盖 

        //self.userInteractionEnabled = NO;  

        self.transform = CGAffineTransformMakeScale(1.2, 1.2);

    } completion:^(BOOL finished) {

        //还原中心点

        [self.layer setAnchorPoint:CGPointMake(0.5, 0.5)];

        CGRect btnFrame = self.frame;

        btnFrame.origin.x -= btnFrame.size.width / 2 ;

        self.frame = btnFrame;

        //旋转

        [UIView transitionWithView:self duration:0.25 options:UIViewAnimationOptionAllowUserInteraction animations:^{

            //

            self.transform = CGAffineTransformRotate(self.transform, M_PI*0.05);

        } completion:^(BOOL finished) {

            //反向旋转

            [UIView transitionWithView:self duration:0.5 options:UIViewAnimationOptionAllowUserInteraction animations:^{

                self.transform = CGAffineTransformRotate(self.transform, -M_PI*0.1);

            } completion:^(BOOL finished) {

                //回到最初旋转状态

                [UIView transitionWithView:self duration:0.25 options:UIViewAnimationOptionAllowUserInteraction animations:^{

                    self.transform = CGAffineTransformRotate(self.transform, M_PI*0.05);

                } completion:^(BOOL finished) {

                    //中心点还原

                    [self.layer setAnchorPoint:CGPointMake(1, 0.5)];

                    CGRect btnFrame = self.frame;

                    btnFrame.origin.x += btnFrame.size.width / 2 ;

                    self.frame = btnFrame;

                    //恢复初始的状态

                    [UIView transitionWithView:self duration:0.5 options:UIViewAnimationOptionAllowUserInteraction animations:^{

                       

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇ios实现无限后台任务 下一篇适配ios11与iphone x实践

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目