CABasicAnimation学习Demo 包括了一些常用的动画效果(二)

2015-07-24 05:57:55 · 作者: · 浏览: 26
Value valueWithCGPoint:toPoint]; //旋转动画 CABasicAnimation* rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];//"z"还可以是“x”“y”,表示沿z轴旋转 rotationAnimation.toValue = [NSNumber numberWithFloat:(2 * M_PI) * 3]; // 3 is the number of 360 degree rotations // Make the rotation animation duration slightly less than the other animations to give it the feel // that it pauses at its largest scale value rotationAnimation.duration = 3.0f; rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; //缓入缓出 //rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; //缩放动画 CABasicAnimation *scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; scaleAnimation.fromValue = [NSNumber numberWithFloat:0.0]; scaleAnimation.toValue = [NSNumber numberWithFloat:1.0]; scaleAnimation.duration = 3.0f; scaleAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; //组合动画 CAAnimationGroup *animationGroup = [CAAnimationGroup animation]; animationGroup.duration = 3.0f; animationGroup.autoreverses = YES; //是否重播,原动画的倒播 animationGroup.repeatCount = NSNotFound;//HUGE_VALF; //HUGE_VALF,源自math.h [animationGroup setAnimations:[NSArray arrayWithObjects:rotationAnimation, scaleAnimation,boundsAnimation, nil]]; //将上述两个动画编组 [self.ViewTest.layer addAnimation:animationGroup forKey:@"animationGroup"]; } //永久闪烁的动画 -(void)opacityForever_Animation:(float
)time { CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"opacity"]; animation.fromValue=[NSNumber numberWithFloat:1.0]; animation.toValue=[NSNumber numberWithFloat:0.0]; animation.autoreverses=YES; animation.duration=time; animation.repeatCount=FLT_MAX; animation.removedOnCompletion=NO; animation.fillMode=kCAFillModeForwards; [self.ViewTest.layer addAnimation:animation forKey:@"opacityForever"]; } /**************************************************************************/ //有闪烁次数的动画 -(void)opacityTimes_Animation:(float)repeatTimes durTimes:(float)time; { CABasicAnimation *animation=[CABasicAnimation animationWithKeyPath:@"opacity"]; animation.fromValue=[NSNumber numberWithFloat:1.0]; animation.toValue=[NSNumber numberWithFloat:0.4]; animation.repeatCount=repeatTimes; animation.duration=time; animation.removedOnCompletion=NO; animation.fillMode=kCAFillModeForwards; animation.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]; animation.autoreverses=YES; [self.ViewTest.layer addAnimation:animation forKey:@"opacityTimes"]; } /**************************************************************************/ //路径动画 -(void)keyframeAniamtion:(CGMutablePathRef)path durTimes:(float)time Rep:(float)repeatTimes { } //在视图中画一条线 -(void)drawACurvedLine { UIGraphicsBeginImageContext(CGSizeMake(320, 460)); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetLineWidth(context, 3); CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor); //设置起点 CGContextMoveToPoint(context, 10, 10);