动画代码
来源:互联网 发布:java p2p网贷系统源码 编辑:程序博客网 时间:2024/04/29 19:27
-(void)setAnimation:(NSIndexPath *) indexPath{ switch (indexPath.section) { case 0:{ [self setLayerAnimation:indexPath.row]; } break; case 1: { [self setUIViewAnimation:indexPath.row]; } break; case 2: { [self setCATransition:indexPath.row]; } break; case 3: { [self setCABasicAnimation:indexPath.row]; } break; case 4: { [self setCAKeyframeAnimation:indexPath.row]; } break; case 5: { [self setCAAnimationGroup:indexPath.row]; } break; case 6:{ [self setCATransfrom3D:indexPath.row]; } break; default: break; }}-(void)setLayerAnimation:(NSInteger) row{ switch (row) { case 0: { [CATransaction begin]; [CATransaction setDisableActions:!enableAnimation.isOn]; [CATransaction setAnimationDuration:animationDuration.value]; [_layer setCornerRadius:[_layer cornerRadius]==0?30:0]; [_layer setBorderWidth:[_layer borderWidth]==0?5:0]; [_layer setBorderColor:[UIColor redColor].CGColor]; [CATransaction commit]; } break; default: break; } }//基础动画-(void)setUIViewAnimation:(NSInteger) row{ switch (row) { case 0://CurlUp { [UIView beginAnimations:@"animationID" context:nil]; [UIView setAnimationDuration:animationDuration.value]; [UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; [UIView setAnimationRepeatAutoreverses:enableAnimation.isOn]; [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:image cache:YES]; [UIView commitAnimations]; } break; case 1://FlipFromLeft { [UIView beginAnimations:@"animationID" context:nil]; [UIView setAnimationDuration:animationDuration.value]; [UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; [UIView setAnimationRepeatAutoreverses:enableAnimation.isOn]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:image cache:YES]; [UIView commitAnimations]; } break; case 2://block CurlDown { [UIView animateWithDuration:animationDuration.value animations:^(void){ [UIView setAnimationRepeatAutoreverses:enableAnimation.isOn]; [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:image cache:YES]; }]; } break; case 3://block FlipFromRight { [UIView animateWithDuration:animationDuration.value delay:.5 options:UIViewAnimationOptionCurveEaseOut animations:^(void){ [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:image cache:YES]; } completion:^(BOOL finish){ animationDurationLabel.text = @"动画结束"; }]; } break; default: break; }}-(void)setCATransition:(NSInteger) row{ switch (row) { case 0://cube { CATransition *transtion = [CATransition animation];// [transtion setStartProgress:0.5];// [transtion setEndProgress:0.6]; transtion.duration = animationDuration.value; [transtion setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]]; [transtion setType:@"cube"]; [transtion setSubtype:kCATransitionFromTop]; [image.layer addAnimation:transtion forKey:@"transtionKey"]; } break; case 1://kCATransitionPush { CATransition *transtion = [CATransition animation]; transtion.duration = animationDuration.value; [transtion setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]]; [transtion setType:kCATransitionPush]; [transtion setSubtype:kCATransitionFromTop]; [image.layer addAnimation:transtion forKey:AnimationKey]; } break; case 2: { CATransition *transtion = [CATransition animation]; transtion.duration = animationDuration.value; [transtion setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]]; [transtion setType:kCATransitionReveal]; [transtion setSubtype:kCATransitionFromTop]; [image.layer addAnimation:transtion forKey:@"transtionKey"]; } break; case 3: { CATransition *transtion = [CATransition animation]; transtion.duration = animationDuration.value; [transtion setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]]; [transtion setType:kCATransitionMoveIn]; [transtion setSubtype:kCATransitionFromTop]; [transtion setDelegate:self]; [image.layer addAnimation:transtion forKey:@"transtionKey"]; } break; case 4://kCATransitionFade { CATransition *transtion = [CATransition animation]; transtion.duration = animationDuration.value; [transtion setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]]; [transtion setType:kCATransitionFade]; [transtion setSubtype:kCATransitionFromTop]; [image setImage:[UIImage imageNamed:@"img.jpeg"]]; [image.layer addAnimation:transtion forKey:AnimationKey]; } break; case 5: { CATransition *transtion = [CATransition animation]; transtion.duration = animationDuration.value; [transtion setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]]; [transtion setType:@"suckEffect"]; [transtion setSubtype:kCATransitionFromTop]; [image.layer addAnimation:transtion forKey:@"transtionKey"]; } break; case 6: { CATransition *transtion = [CATransition animation]; transtion.duration = animationDuration.value; [transtion setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]]; [transtion setType:@"oglFlip"]; [transtion setSubtype:kCATransitionFromTop]; [image.layer addAnimation:transtion forKey:@"transtionKey"]; } break; case 7: { CATransition *transtion = [CATransition animation]; [transtion setStartProgress:.2]; [transtion setEndProgress:.8]; transtion.duration = animationDuration.value; [transtion setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; [transtion setType:@"rippleEffect"]; [transtion setSubtype:kCATransitionFromTop]; [image.layer addAnimation:transtion forKey:@"transtionKey"]; } break; case 8://cameraIrisHollowOpen { CATransition *transtion = [CATransition animation]; transtion.duration = animationDuration.value; [transtion setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]]; [transtion setType:@"cameraIrisHollowOpen"]; [transtion setSubtype:kCATransitionFromTop]; [image.layer addAnimation:transtion forKey:@"transtionKey"]; } break; case 9://cameraIrisHollowClose { CATransition *transtion = [CATransition animation]; transtion.duration = animationDuration.value; [transtion setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]]; [transtion setType:@"cameraIrisHollowClose"]; [transtion setSubtype:kCATransitionFromTop]; [image.layer addAnimation:transtion forKey:@"transtionKey"]; } break; default: break; }}-(void)setCABasicAnimation:(NSInteger) row{ switch (row) { case 0: { CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; [basic setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]]; [basic setFromValue:[NSNumber numberWithFloat:1]]; [basic setToValue:[NSNumber numberWithFloat:.3]]; [basic setDuration:animationDuration.value]; [basic setDelegate:self]; [image.layer addAnimation:basic forKey:AnimationKey]; } break;// case 1:// {// CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"opacity"];// [basic setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]];// [basic setFromValue:[NSNumber numberWithFloat:1]];// [basic setToValue:[NSNumber numberWithFloat:.3]];// [basic setDuration:animationDuration.value];// [image.layer addAnimation:basic forKey:AnimationKey];// }// break; case 1: {// CABasicAnimation *basic=[CABasicAnimation animationWithKeyPath:@"shadowColor"];// basic.fromValue=(id)[UIColor redColor].CGColor;// basic.toValue=(id)[UIColor greenColor].CGColor;// basic.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];// basic.duration=animationDuration.value;// [image.layer addAnimation:basic forKey:AnimationKey];// self.view.layer.transform=CATransform3DMakeRotation(M_PI, 0,0,1); CABasicAnimation *animation = [ CABasicAnimation animationWithKeyPath: @"transform" ]; animation.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity]; //围绕Z轴旋转,垂直与屏幕 animation.toValue = [ NSValue valueWithCATransform3D: CATransform3DMakeRotation(45.0f * M_PI / 180.0f,1.0, 0,0) ]; animation.duration = 1;// //旋转效果累计,先转180度,接着再旋转180度,从而实现360旋转// animation.cumulative = YES;// animation.repeatCount = 2; //在图片边缘添加一个像素的透明区域,去图片锯齿// CGRect imageRrect = CGRectMake(0, 0,image.frame.size.width, image.frame.size.height);// UIGraphicsBeginImageContext(imageRrect.size);// [image.image drawInRect:CGRectMake(1,1,image.frame.size.width-2,image.frame.size.height-2)];// image.image = UIGraphicsGetImageFromCurrentImageContext();// UIGraphicsEndImageContext(); animation.fillMode=kCAFillModeForwards; animation.removedOnCompletion = NO; [image.layer addAnimation:animation forKey:AnimationKey]; } default: break; }}-(void)setCAKeyframeAnimation:(NSInteger) row{ switch (row) { case 0: { CAKeyframeAnimation *keyframe = [CAKeyframeAnimation animationWithKeyPath:@"borderWidth"]; keyframe.values = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0], [NSNumber numberWithFloat:5], [NSNumber numberWithFloat:10], [NSNumber numberWithFloat:15],nil]; keyframe.repeatCount = MAXFLOAT; keyframe.autoreverses = enableAnimation.isOn; keyframe.duration = animationDuration.value; [image.layer addAnimation:keyframe forKey:AnimationKey]; } break; case 1://position { UIBezierPath *path = [UIBezierPath bezierPath]; // [path moveToPoint:image.frame.origin]; [path moveToPoint:CGPointMake(image.frame.origin.x + image.frame.size.width/2, image.frame.origin.y + image.frame.size.height/2)]; [path addLineToPoint:CGPointMake(image.frame.origin.x + image.frame.size.width/2,400)]; [path addLineToPoint:CGPointMake(20, 400)]; CAKeyframeAnimation *keyframe = [CAKeyframeAnimation animationWithKeyPath:@"position"]; keyframe.path = path.CGPath; keyframe.duration = animationDuration.value; [image.layer addAnimation:keyframe forKey:AnimationKey]; } break; default: break; }}-(void)setCAAnimationGroup:(NSInteger) row{ CAAnimationGroup *group = [CAAnimationGroup animation]; CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; [basic setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]]; [basic setFromValue:[NSNumber numberWithFloat:1]]; [basic setToValue:[NSNumber numberWithFloat:.3]]; CAKeyframeAnimation *keyframe = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.x"]; keyframe.values = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0],[NSNumber numberWithFloat:M_PI], nil]; [group setDuration:animationDuration.value]; [group setAnimations:[NSArray arrayWithObjects:basic,keyframe, nil]]; [image.layer addAnimation:group forKey:AnimationKey];}-(void)setCATransfrom3D:(NSInteger) row{ switch (row) { case 0: { [UIView animateWithDuration:animationDuration.value animations:^{ [UIView setAnimationRepeatCount:MAXFLOAT]; [UIView setAnimationRepeatAutoreverses:enableAnimation.isOn]; CATransform3D transform = CATransform3DMakeTranslation(0, -150, 0); CATransform3D trans = CATransform3DScale(transform, 1.5, 1.5, 10); [label.layer setTransform:trans]; } completion:^(BOOL finished) { animationDurationLabel.text = @"finished"; }]; } break; case 1:{ CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; [basic setDuration:animationDuration.value]; [basic setRepeatCount:MAXFLOAT]; [basic setAutoreverses:enableAnimation.isOn]; NSValue *valueForm = [NSValue valueWithCATransform3D:CATransform3DIdentity]; CATransform3D transTo = CATransform3DMakeScale(.5, .5, 0); NSValue *valueTo = [NSValue valueWithCATransform3D:transTo]; [basic setFromValue:valueForm]; [basic setToValue:valueTo]; [image.layer addAnimation:basic forKey:AnimationKey]; } break; case 2:{ CAKeyframeAnimation *keyframe = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"]; [keyframe setRepeatCount:MAXFLOAT]; [keyframe setDuration:animationDuration.value]; [keyframe setAutoreverses:enableAnimation.isOn]; CATransform3D transForm = CATransform3DIdentity; CATransform3D transTo = CATransform3DMakeScale(.5, .5, 0); NSValue *valueForm = [NSValue valueWithCATransform3D:transForm]; NSValue *valueTo = [NSValue valueWithCATransform3D:transTo]; [keyframe setValues:[NSArray arrayWithObjects:valueTo,valueForm,nil]]; [image.layer addAnimation:keyframe forKey:AnimationKey]; } break; case 3:{ CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"transform"]; [basic setRepeatCount:MAXFLOAT]; [basic setDuration:animationDuration.value]; [basic setAutoreverses:enableAnimation.isOn]; NSValue *valueForm = [NSValue valueWithCATransform3D:CATransform3DIdentity]; CGAffineTransform affine = CGAffineTransformMakeTranslation(0, -150); CATransform3D t = CATransform3DMakeAffineTransform(affine); CATransform3D trans = CATransform3DScale(t, 1.5, 1.5, 10); NSValue *valueTo = [NSValue valueWithCATransform3D:trans]; [basic setFromValue:valueForm]; [basic setToValue:valueTo]; [label.layer addAnimation:basic forKey:AnimationKey]; } break; default: break; }}-(void)animationDidStart:(CAAnimation *)anim{ animationDurationLabel.text = @"开始动画";}-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{ animationDurationLabel.text = @"动画完毕";}- (IBAction)animationDurationChanged:(id)sender { [image.layer removeAnimationForKey:AnimationKey]; [label.layer removeAllAnimations]; animationDuration = (UISlider *)sender; [animationDurationLabel setText:[NSString stringWithFormat:@"%1.1f", animationDuration.value]];}
0 0
- 动画代码
- 动画代码
- 动画代码
- 几个简单动画代码
- 动画旋转示例代码
- 代码动画编写
- 动画代码片段
- 动画效果代码段
- iTween动画代码demo
- android 动画代码实现
- 帧动画代码实现
- iOS动画纯代码
- 动画代码笔记
- Unity 代码帧动画
- svg英文字母动画代码
- Swift-Animated动画代码
- 代码实现组合动画
- 帧动画代码实现
- 2014-03-04
- Huffman编码的实现
- QML实用方法集合
- UITextView设置placeholder的方法
- 提升基于英特尔® 架构的 Android* 模拟器的速度
- 动画代码
- Pat(Basic Level)Practice--1021(个位数统计)
- Excel VBA编程的常用代码(备用待查)
- 几种排序的直观解释
- 用枚举表示对称方式
- Android 异步加载网络图片并缓存到本地 软引用 学习分享
- The matching wildcard is strict, but no declaration can be found for element
- 在ios android设备上使用 Protobuf (使用源码方式)
- Linux中bash的使用(二)