zoukankan      html  css  js  c++  java
  • iOS 动画 旋转 移动简单代码

    #import "ViewController.h"

    @interface ViewController ()

    {

        UIImageView *imgView;

        BOOL flag;

        UIImageView *imgView1;

        UIImageView *imgView2;

        UIImageView *imgView3;

        

        UIButton *btn1;

        UIButton *btn2;

        UIButton *btn3;

    }

    @end

    @implementation ViewController

    - (void)viewDidLoad

    {

        [super viewDidLoad];

        

        self.view.backgroundColor = [UIColor whiteColor];

        

        flag = YES;

        

        

        

        

        btn1 = [UIButton buttonWithType:UIButtonTypeCustom];

        btn1.frame = CGRectMake(250, 200, 60, 60);

    //    btn1.hidden = YES;

        [self.view addSubview:btn1];

        

        imgView1 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 60, 60)];

        imgView1.layer.cornerRadius = 30;

        imgView1.layer.masksToBounds = YES;

        imgView1.image = [UIImage imageNamed:@"1.png"];

        [btn1 addSubview:imgView1];

        

        btn2 = [UIButton buttonWithType:UIButtonTypeCustom];

        btn2.frame = CGRectMake(250, 200, 60, 60);

    //    btn2.hidden = YES;

        [self.view addSubview:btn2];

        

        imgView2 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 60, 60)];

        imgView2.layer.cornerRadius = 30;

        imgView2.layer.masksToBounds = YES;

        imgView2.image = [UIImage imageNamed:@"2.png"];

        [btn2 addSubview:imgView2];

        

        btn3 = [UIButton buttonWithType:UIButtonTypeCustom];

        btn3.frame = CGRectMake(250, 200, 60, 60);

    //    btn3.hidden = YES;

        [self.view addSubview:btn3];

        

        imgView3 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 60, 60)];

        imgView3.layer.cornerRadius = 30;

        imgView3.layer.masksToBounds = YES;

        imgView3.image = [UIImage imageNamed:@"3.png"];

        [btn3 addSubview:imgView3];

        

        

        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

        button.frame = CGRectMake(250, 200, 60, 60);

        [button addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];

        [self.view addSubview:button];

        

        imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 60, 60)];

        imgView.layer.cornerRadius = 30;

        imgView.layer.masksToBounds = YES;

        imgView.image = [UIImage imageNamed:@"01.png"];

        [button addSubview:imgView];

        

    }

    -(void)click:(id)sender

    {

        if (flag)

        {

            [UIView animateWithDuration:0.5 animations:^{

                imgView.transform = CGAffineTransformMakeRotation(3.14);

    //             [btn1.layer addAnimation:[self moveX:2.0f X:[NSNumber numberWithFloat:-150.0f]] forKey:nil];

    //            [btn3.layer addAnimation:[self moveX:1.0f X:[NSNumber numberWithFloat:200.0f]] forKey:nil];

                [btn1.layer addAnimation:[self moveX:1.0 X:[NSNumber numberWithFloat:-150.0f] Direction:0] forKey:nil];

                [btn2.layer addAnimation:[self moveX:1.0 X:[NSNumber numberWithFloat:-150.0f] Direction:1] forKey:nil];

    //            [btn3.layer addAnimation:[self moveX:2.0 X:[NSNumber numberWithFloat:0] Direction:2] forKey:nil];

                CGPoint point = CGPointMake(-100, -100);

                [btn3.layer addAnimation:[self movepoint:point time:1.0] forKey:nil];

    //            [btn1.layer addAnimation:[self rotation:2.0 degree:0.78 direction:360 repeatCount:1] forKey:nil];

                [UIView animateWithDuration:0.5 animations:^{

                    btn1.transform = CGAffineTransformMakeRotation(M_PI);

                    btn2.transform = CGAffineTransformMakeRotation(M_PI);

                    btn3.transform = CGAffineTransformMakeRotation(M_PI);

                }];

            }];

            flag=NO;

        }

        else

        {

            [UIView animateWithDuration:0.5 animations:^{

                imgView.transform = CGAffineTransformIdentity;

    //            [btn1.layer addAnimation:[self moveX:2.0f X:[NSNumber numberWithFloat:0.0f]] forKey:nil];

                [btn1.layer addAnimation:[self moveX:1.0f X:[NSNumber numberWithFloat:0.0f] Direction:0] forKey:nil];

                [btn2.layer addAnimation:[self moveX:1.0f X:[NSNumber numberWithFloat:0.0f] Direction:1] forKey:nil];

                CGPoint point = CGPointMake(0, 0);

                [btn3.layer addAnimation:[self movepoint:point time:1.0] forKey:nil];

                [UIView animateWithDuration:0.5 animations:^{

                    btn1.transform = CGAffineTransformMakeRotation(0);

                    btn2.transform = CGAffineTransformMakeRotation(0);

                    btn3.transform = CGAffineTransformMakeRotation(0);

                }];

                

            }];

            flag=YES;

        }

    }

    #pragma mark =====横向、纵向移动===========

    //横向或者纵向移动

    -(CABasicAnimation *)moveX:(float)time X:(NSNumber *)x Direction:(NSUInteger)tag

    {

    //    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.translation.x"];///.y的话就向下移动。

        CABasicAnimation *animation = [[CABasicAnimation alloc] init];///.y的话就向下移动。

        if (tag == 0)//横向,改变X

        {

            animation.keyPath = @"transform.translation.x";

            animation.toValue = x;

        }

        else if (tag == 1)//纵向,改变Y

        {

            animation.keyPath = @"transform.translation.y";

            animation.toValue = x;

        }

        animation.duration = time;

        animation.removedOnCompletion = NO;//yes的话,又返回原位置了。

        //    animation.repeatCount = MAXFLOAT;

        animation.repeatCount = 1;

        animation.fillMode = kCAFillModeForwards;

        return animation;

    }

    //移动到某个点

    -(CABasicAnimation *)movepoint:(CGPoint )point time:(float)time//点移动

    {

        CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"transform.translation"];

        animation.toValue=[NSValue valueWithCGPoint:point];

        animation.removedOnCompletion=NO;

        animation.duration = time;

        animation.fillMode=kCAFillModeForwards;

        return animation;

    }

    //旋转

    -(CABasicAnimation *)rotation:(float)dur degree:(float)degree direction:(int)direction repeatCount:(int)repeatCount

    {

        CATransform3D rotationTransform  = CATransform3DMakeRotation(degree, 0, 0,direction);

        CABasicAnimation* animation;

        animation = [CABasicAnimation animationWithKeyPath:@"transform"];

        animation.toValue= [NSValue valueWithCATransform3D:rotationTransform];

        animation.duration= dur;

        animation.autoreverses= NO;

    //    animation.cumulative= YES;

        animation.removedOnCompletion=NO;

        animation.fillMode=kCAFillModeForwards;

        animation.repeatCount= repeatCount;

        animation.delegate= self;

        return animation;

        

    }

  • 相关阅读:
    Eclipse安装Hadoop插件
    (转)Ubuntu14.0.4中hadoop2.4.0伪分布模式配置
    Hadoop--DataNode无法启动
    启动与关闭hadoop
    hadoop中执行命令时发生错误
    strings命令
    Deriving data from ElasticSearch Engine
    elasticsearch data importing
    reading words in your computer and changing to female voice, linux festival text2wave saving wav files
    DDNS client on a Linux machine
  • 原文地址:https://www.cnblogs.com/camillezlh/p/4570946.html
Copyright © 2011-2022 走看看