imageView图片自动360旋转

本文介绍如何使用Objective-C在iOS应用中实现按钮上图片的360度连续旋转效果,通过CABasicAnimation动画实现按钮图片的平滑旋转,并介绍了如何通过代码设置动画的关键参数。

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


imageView 中的图片自动360度旋转


#import "ViewController.h"


@interface ViewController ()


@property(nonatomic,strong)UIButton *btn;


@end


@implementation ViewController


- (void)viewDidLoad {

    [superviewDidLoad];

    UIButton* btn = [[UIButtonalloc]init];

    btn.frame =CGRectMake(100,200, 100,40);

    [self.viewaddSubview:btn];

    btn.backgroundColor = [UIColorblackColor];

    [btn setTitle:@"更新"forState:UIControlStateNormal];

    [btn setImage:[UIImageimageNamed:@"更新"]forState:UIControlStateNormal];

    [btn addTarget:selfaction:@selector(startAnimate)forControlEvents:UIControlEventTouchUpInside];

    _btn = btn;

}

-(void)startAnimate

{

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

    animation.fromValue = [NSValuevalueWithCATransform3D:CATransform3DIdentity];

    //围绕Z轴旋转,垂直与屏幕

    animation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI/2,0.0, 0.0,1.0) ];

    animation.duration =0.1;

    //旋转效果累计,先转180度,接着再旋转180度,从而实现360旋转

    animation.cumulative =YES;

    animation.repeatCount =1000;

    

    //在图片边缘添加一个像素的透明区域,去图片锯齿

    CGRect imageRrect =CGRectMake(0,0,_btn.imageView.frame.size.width,_btn.imageView.frame.size.height);

    UIGraphicsBeginImageContext(imageRrect.size);

    [_btn.imageView.imagedrawInRect:CGRectMake(1,1,_btn.imageView.frame.size.width-2,_btn.imageView.frame.size.height-2)];

    _btn.imageView.image =UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    [_btn.imageView.layeraddAnimation:animation forKey:nil];

}


-(void)stopAnimate

{

        [_btn.imageView.layerremoveAllAnimations];

}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值