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];        
    
        }];
    
    }
  • 相关阅读:
    Java制作证书的工具keytool用法总结
    JSP取得绝对路径
    JavaScript屏蔽Backspace键
    MyEclipse使用总结——MyEclipse文件查找技巧
    Java基础学习总结——Java对象的序列化和反序列化
    JavaScript自动生成博文目录导航
    Javascript 面向对象编程(一):封装(转载)
    JavaScript学习总结(十四)——JavaScript编写类的扩展方法
    JavaScript学习总结(十六)——Javascript闭包(Closure)
    JavaScript学习总结(十三)——极简主义法编写JavaScript类
  • 原文地址:https://www.cnblogs.com/xujiahui/p/6611043.html
Copyright © 2011-2022 走看看