图片的旋转动画

本文介绍了三种在iOS中实现视图旋转动画的方法,包括通过UIView动画、定时器结合角度变化以及利用Core Animation进行连续旋转的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 旋转一 3.14

//- (void)startAnimation

//{

//    // M_PI圆周率,这里代表180° 2*M_PI 代表360°

//    // 0 - 2*M_PI,代表0°- 360°

//    

//    [UIView beginAnimations:nil context:nil];

//    [UIView setAnimationDuration:0.01];

//    [UIView setAnimationDelegate:self];

//    [UIView setAnimationDidStopSelector:@selector(repate)];

//    imageview.transform = CGAffineTransformMakeRotation(angle * (M_PI / 180.0f));

//    [UIView commitAnimations];

//}

//- (void)repate

//{

//    angle += 1;

//    [self startAnimation];

//}

// 旋转二

//- (void)rotationTwo

//{

//    [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(xuanzhuan) userInfo:nil repeats:YES];

//}

//- (void)xuanzhuan

//{

//    angle = angle+0.1;

//    if (angle > 6.28) {

//        angle = 0;

//    }

//    imageview.transform = CGAffineTransformMakeRotation(angle);

//}

// 旋转3

- (void)donghua3

{

    // 圆角

    imageview.layer.cornerRadius = 150.0/2.0;

    // 取出多余部分

    imageview.layer.masksToBounds = YES;

    //添加动画

    /*

    transform.scale = 比例转换

    transform.scale.x = 宽的比例转换

    transform.scale.y = 高的比例转换

    transform.rotation.z = 旋转

    opacity = 透明度

     */

    CABasicAnimation *monkeyAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];

    monkeyAnimation.toValue = [NSNumber numberWithFloat:2.0 *M_PI]; // 旋转一周

    monkeyAnimation.duration = 1.5f; // 持续时间

    // 动画类型,匀速、加速、减速等

    monkeyAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];

    monkeyAnimation.cumulative = NO;

    monkeyAnimation.removedOnCompletion = NO; //No Remove

    monkeyAnimation.repeatCount = FLT_MAX; // 重复

    [imageview.layer addAnimation:monkeyAnimation forKey:@"AnimatedKey"];

    [imageview stopAnimating];

    

    // 加载动画 但不播放动画

    imageview.layer.speed = 0.5;

    

    // 停止动画

    //imageview.layer.speed = 0;

}

/*

 //开始动画

 - (IBAction)startAnimate:(id)sender {

     if (!isplay) {

     isplay = YES;

     self.imgview.layer.speed = 1.0;

     self.imgview.layer.beginTime = 0.0;

     CFTimeInterval pausedTime = [self.imgview.layer timeOffset];

     CFTimeInterval timeSincePause = [self.imgview.layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;

     self.imgview.layer.beginTime = timeSincePause;

     }

 }

 //停止动画并保存当前的角度

 - (IBAction)stioAnimate:(id)sender {

     if (isplay) {

     isplay = NO;

     CFTimeInterval pausedTime = [self.imgview.layer convertTime:CACurrentMediaTime() fromLayer:nil];

     self.imgview.layer.speed = 0.0;

     self.imgview.layer.timeOffset = pausedTime;

     }

 }

 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值