zoukankan      html  css  js  c++  java
  • 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];        
    
        }];
    
    }
  • 相关阅读:
    learning scala view collection
    scala
    learning scala dependency injection
    learning scala implicit class
    learning scala type alise
    learning scala PartialFunction
    learning scala Function Recursive Tail Call
    learning scala Function Composition andThen
    System.Threading.Interlocked.CompareChange使用
    System.Threading.Monitor的使用
  • 原文地址:https://www.cnblogs.com/xujiahui/p/6611043.html
Copyright © 2011-2022 走看看