需要的效果;平时长按图标删除的时候,会有抖动的效果,循环的执行抖动的效果,使用CAKeyframeAnimation动画
//角度转弧度 #define Angle2Radian(angle) ((angle) /180.0 * M_PI) //只要是view的子类都可以执行动画 @property (weak, nonatomic) IBOutlet UIImageView *iconView; #pragma make - 点击按钮执行抖动效果 - (IBAction)start:(id)sender { //平时长按图标删除的时候,会有抖动的效果,循环的执行抖动的效果 CAKeyframeAnimation *anim = [CAKeyframeAnimation animation]; anim.keyPath = @"transform.rotation"; anim.values = @[@(Angle2Radian(-5)),@(Angle2Radian(5)),@(Angle2Radian(-5))]; anim.duration = 0.25; anim.repeatCount = MAXFLOAT; //循环执行的次数 anim.removedOnCompletion = NO; anim.fillMode = kCAFillModeForwards; [self.iconView.layer addAnimation:anim forKey:@"stoke"];//forKey主要作用就是在标识animation,在removeAnimationForKey删除动画的时候使用 } #pragma make - 点击按钮停止抖动效果 - (IBAction)stop:(id)sender { [self.iconView.layer removeAnimationForKey:@"stoke"]; }