• iOS 实现UIImageView 的不停的旋转(更新:2017.7.26)


    1.先创建一个UIImageView.

    - (void)createImageView {
    
        UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0,0.0, frame.size.width, frame.size.height)];
    
        imageView.image = [UIImageimageNamed:@"image1.png"];
    
        self.myImageView = imageView;
    
        [self addSubview:imageView];
    
    }

     

    问题:方法一二是让iamgeview 循环旋转角度,如果把imageview 放在tableviewcell上边,每次刷新tableview,imageview 的旋转速度会加倍;没有去做相应的处理,而是直接利用另一个旋转方法三

    方法三:

     CABasicAnimation *animation =  [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
        //默认是顺时针效果,若将fromValue和toValue的值互换,则为逆时针效果
        animation.fromValue = [NSNumber numberWithFloat:0.f];
        animation.toValue =  [NSNumber numberWithFloat: M_PI *2];
        animation.duration  = 1;
        animation.autoreverses = NO;
        animation.fillMode =kCAFillModeForwards;
        animation.repeatCount = MAXFLOAT; //如果这里想设置成一直自旋转,可以设置为MAXFLOAT,否则设置具体的数值则代表执行多少次
        [self.imageView1.layer addAnimation:animation forKey:nil];

     

    //方法一:

    - (void)buttonAction:(id)sender {
    
        angle = 0.0;
    
        [selfstartAnimation];
    
    }
    
    - (void)startAnimation
    
    {
    
        [UIView beginAnimations:nilcontext:nil];
    
        [UIView setAnimationDuration:0.01];
    
        [UIView setAnimationDelegate:self];
    
        [UIView setAnimationDidStopSelector:@selector(endAnimation)];
    
        self.myImageView.transform = CGAffineTransformMakeRotation(angle * (M_PI /180.0f));
    
        [UIView commitAnimations];
    
    }
    
    -(void)endAnimation
    
    {
    
        angle += 15;
    
        [selfstartAnimation];
    
    }
    方法一

     

    //方法二:(使用Block)

    - (void)startAnimation
    
    {
    
        CGAffineTransform endAngle = CGAffineTransformMakeRotation(angle * (M_PI /180.0f));
    
        [UIView animateWithDuration:0.01delay:0 options:UIViewAnimationOptionCurveLinearanimations:^{
    
            self.myImageView.transform = endAngle;
    
        } completion:^(BOOL finished) {
    
            angle += 15;
    
            [selfstartAnimation];        
    
        }];
    
    }
  • 相关阅读:
    如何在TVM上集成Codegen(上)
    CodeGen准备存储库
    CodeGen按钮循环
    CodeGen标记循环
    CodeGen结构循环回路
    CodeGen处理Synergy方法目录
    回顾6 单点登录
    回顾 five 幂等性
    回顾 four Object
    程序员的数学基础课 笔记6
  • 原文地址:https://www.cnblogs.com/xujiahui/p/6611043.html
Copyright © 2020-2023  润新知