//360度转动动画
-(void)rotate360DegreeWithImageView:(UIView *)view{
CABasicAnimation *animation = [CABasicAnimation
animationWithKeyPath: @"transform" ];
//围绕Z轴旋转,垂直与屏幕
animation.fromValue = [NSValue valueWithCATransform3D:
CATransform3DMakeRotation(M_PI,0.0, 0.0, 1.0) ];
animation.toValue = [NSValuevalueWithCATransform3D:CATransform3DIdentity];
animation.duration =0.3;
//旋转效果累计,先转180度,接着再旋转180度,从而实现360旋转
animation.cumulative =YES;
animation.repeatCount =1000;
[view.layeraddAnimation:animation forKey:nil];
}
//停止转动-(void)stopAnimate:(UIView *)view
{
[view.layerremoveAllAnimations];
}
//放大缩小的动画
- (void) shakeToShow:(UIView*)aView{
CAKeyframeAnimation* animation = [CAKeyframeAnimationanimationWithKeyPath:@"transform"];
animation.duration =0.5;
NSMutableArray *values = [NSMutableArrayarray];
[values addObject:[NSValuevalueWithCATransform3D:CATransform3DMakeScale(0.1,0.1, 1.0)]];
[values addObject:[NSValuevalueWithCATransform3D:CATransform3DMakeScale(1.05,1.05, 1.0)]];
[values addObject:[NSValuevalueWithCATransform3D:CATransform3DMakeScale(0.95,0.95, 1.0)]];
[values addObject:[NSValuevalueWithCATransform3D:CATransform3DMakeScale(1.0,1.0, 1.0)]];
animation.values = values;
[aView.layeraddAnimation:animation forKey:nil];
}
//左右抖动动画
-(void)lockAnimationForView:(UIView*)view
{
CALayer *layer = [view layer];
CGPoint point = [layer position];
CGPoint y = CGPointMake(point.x-3.5, point.y);
CGPoint x = CGPointMake(point.x+3.5, point.y);
CABasicAnimation * animation = [CABasicAnimationanimationWithKeyPath:@"position"];
[animation setTimingFunction:[CAMediaTimingFunction
functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[animation setFromValue:[NSValuevalueWithCGPoint:x]];
[animation setToValue:[NSValuevalueWithCGPoint:y]];
[animationsetAutoreverses:YES];
[animationsetDuration:0.08];
[animationsetRepeatCount:2];
[layeraddAnimation:animation forKey:nil];
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
//
视图转动动画 +
( void )shakeView:( UIView
*)view
duration :(CGFloat)fDuration { if
(view && (fDuration >= 0 .1f )) { CABasicAnimation*
shake = [ CABasicAnimation
animationWithKeyPath : @"transform.rotation.z" ]; //设置抖动幅度 shake .fromValue
= [ NSNumber
numberWithFloat :- 0 .3 ]; shake .toValue
= [ NSNumber
numberWithFloat :+ 0 .3 ]; shake .duration
= 0 .1f ; shake .repeatCount
= fDuration/ 4 / 0 .1f ; shake .autoreverses
= YES ; [view .layer
addAnimation :shake
forKey : @"shakeView" ]; } else {} }
CAKeyframeAnimation*
anim=[ CAKeyframeAnimation
animation ]; anim .keyPath = @"transform.rotation" ; anim .values =@[@(angelToRandian(- 7 )),@(angelToRandian( 7 )),@(angelToRandian(- 7 ))]; anim .repeatCount = MAXFLOAT ; anim .duration = 0 .2 ; [ self .imageView .layer
addAnimation :anim
forKey :nil ]; |