你的位置:首页 > 操作系统

[操作系统]IOS动画


//// ViewController.m// IOS-动画特效//// Created by wangtouwang on 15/5/5.// Copyright (c) 2015年 wangtouwang. All rights reserved.//#import "ViewController.h"#define kDuration 0.7  // 动画持续时间(秒)#define KS_HEIGTH [UIScreen mainScreen].bounds.size.height#define KS_WIDTH [UIScreen mainScreen].bounds.size.Width@interface ViewController ()@property(nonatomic,strong) UIView *imageView;@end@implementation ViewController@synthesize typeID;@synthesize blueView;@synthesize greenView;-(void)animationFunction:(UIButton *)btn{  NSInteger index = btn.tag;  CATransition *transition = [CATransition animation];  //代理  transition.delegate = self;  //持续时间  transition.duration= kDuration;  //类型  transition.type = [self getAnimationType:index];  //方向  transition.subtype = [self getSubType];  // 动画的开始与结束的快慢*/  transition.timingFunction = UIViewAnimationCurveEaseInOut;  //事件源  NSInteger blue = [[_imageView subviews] indexOfObject:blueView];  NSInteger green = [[_imageView subviews] indexOfObject:greenView];  [_imageView exchangeSubviewAtIndex:green withSubviewAtIndex:blue];    //开始动画  [_imageView.layer addAnimation:transition forKey:@"animation"];}-(void)animationFunction2:(UIButton *)btn{  NSInteger index = btn.tag;  CGContextRef context = UIGraphicsGetCurrentContext();  [UIView beginAnimations:nil context:context];//开始一个动画块  [UIView setAnimationDelegate:self];//代理  [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];//设置动画块中的动画属性变化的曲线。  [UIView setAnimationDuration:kDuration];//在动画块中设置动画的延迟属性 (以秒为单位)  //在动画块中为视图设置过渡  switch (index) {    case 10:      [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:YES];      break;    case 9:      [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];      break;    case 12:      [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];      break;    case 11:      [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];      break;    default:      break;  }  //事件源  NSInteger blue = [[_imageView subviews] indexOfObject:blueView];  NSInteger green = [[_imageView subviews] indexOfObject:greenView];  [_imageView exchangeSubviewAtIndex:green withSubviewAtIndex:blue];    // 动画完毕后调用某个方法  //[UIView setAnimationDidStopSelector:@selector(animationFinished:)];  [UIView commitAnimations];//结束一个动画块并开始当他在动画块外时}-(NSString *)getAnimationType:(NSInteger)index{  NSString *type=nil;  switch (index) {    case 5:      type = kCATransitionFade;      break;    case 6:      type = kCATransitionPush;      break;    case 7:      type = kCATransitionReveal;      break;    case 8:      type = kCATransitionMoveIn;      break;    case 4:      type = @"cube";      break;    case 3:      type = @"suckEffect";      break;    case 1:      type = @"pageCurl";      break;    case 2:      type = @"pageUnCurl";      break;    default:      break;  }  return type;}-(NSString *)getSubType{  NSString *subtype = nil;  switch (self.typeID) {    case 0:      subtype = kCATransitionFromLeft;      break;    case 1:      subtype = kCATransitionFromBottom;      break;    case 2:      subtype = kCATransitionFromRight;      break;    case 3:      subtype = kCATransitionFromTop;      break;    default:      break;  }  self.typeID += 1;  if (self.typeID > 3) {    self.typeID = 0;  }  return subtype;}- (void)viewDidLoad {  [super viewDidLoad];  [self.view setBackgroundColor:[UIColor whiteColor]];  [self.navigationItem setTitle:@"动画特效"];    UIButton *addBtn1 = [[UIButton alloc] initWithFrame:CGRectMake(10,70, 80, 30)];  [addBtn1 setTitle:@"翻页" forState:UIControlStateNormal];  addBtn1.titleLabel.font=[UIFont systemFontOfSize:13.0f];  [addBtn1 setBackgroundColor:[UIColor grayColor]];  addBtn1.tag=1;  [addBtn1 addTarget:self action:@selector(animationFunction:) forControlEvents:UIControlEventTouchUpInside];  [self.view addSubview:addBtn1];    UIButton *addBtn2 = [[UIButton alloc] initWithFrame:CGRectMake(100,70, 80, 30)];  [addBtn2 setTitle:@"反翻页" forState:UIControlStateNormal];  addBtn2.titleLabel.font=[UIFont systemFontOfSize:13.0f];  [addBtn2 setBackgroundColor:[UIColor grayColor]];  addBtn2.tag=2;  [addBtn2 addTarget:self action:@selector(animationFunction:) forControlEvents:UIControlEventTouchUpInside];  [self.view addSubview:addBtn2];    UIButton *addBtn3 = [[UIButton alloc] initWithFrame:CGRectMake(190,70, 80, 30)];  [addBtn3 setTitle:@"波纹" forState:UIControlStateNormal];  addBtn3.titleLabel.font=[UIFont systemFontOfSize:13.0f];  [addBtn3 setBackgroundColor:[UIColor grayColor]];  addBtn3.tag=3;  [addBtn3 addTarget:self action:@selector(animationFunction:) forControlEvents:UIControlEventTouchUpInside];  [self.view addSubview:addBtn3];    UIButton *addBtn4 = [[UIButton alloc] initWithFrame:CGRectMake(280,70, 80, 30)];  [addBtn4 setTitle:@"立方体" forState:UIControlStateNormal];  addBtn4.titleLabel.font=[UIFont systemFontOfSize:13.0f];  [addBtn4 setBackgroundColor:[UIColor grayColor]];  addBtn4.tag=4;  [addBtn4 addTarget:self action:@selector(animationFunction:) forControlEvents:UIControlEventTouchUpInside];  [self.view addSubview:addBtn4];    UIButton *addBtn5 = [[UIButton alloc] initWithFrame:CGRectMake(10,110, 80, 30)];  [addBtn5 setTitle:@"淡化" forState:UIControlStateNormal];  addBtn5.titleLabel.font=[UIFont systemFontOfSize:13.0f];  [addBtn5 setBackgroundColor:[UIColor grayColor]];  addBtn5.tag=5;  [addBtn5 addTarget:self action:@selector(animationFunction:) forControlEvents:UIControlEventTouchUpInside];  [self.view addSubview:addBtn5];    UIButton *addBtn6 = [[UIButton alloc] initWithFrame:CGRectMake(100,110, 80, 30)];  [addBtn6 setTitle:@"推挤" forState:UIControlStateNormal];  addBtn6.titleLabel.font=[UIFont systemFontOfSize:13.0f];  [addBtn6 setBackgroundColor:[UIColor grayColor]];  addBtn6.tag=6;  [addBtn6 addTarget:self action:@selector(animationFunction:) forControlEvents:UIControlEventTouchUpInside];  [self.view addSubview:addBtn6];    UIButton *addBtn7 = [[UIButton alloc] initWithFrame:CGRectMake(190,110, 80, 30)];  [addBtn7 setTitle:@"揭开" forState:UIControlStateNormal];  addBtn7.titleLabel.font=[UIFont systemFontOfSize:13.0f];  [addBtn7 setBackgroundColor:[UIColor grayColor]];  addBtn7.tag=7;  [addBtn7 addTarget:self action:@selector(animationFunction:) forControlEvents:UIControlEventTouchUpInside];  [self.view addSubview:addBtn7];    UIButton *addBtn8 = [[UIButton alloc] initWithFrame:CGRectMake(280,110, 80, 30)];  [addBtn8 setTitle:@"覆盖" forState:UIControlStateNormal];  addBtn8.titleLabel.font=[UIFont systemFontOfSize:13.0f];  [addBtn8 setBackgroundColor:[UIColor grayColor]];  addBtn8.tag=8;  [addBtn8 addTarget:self action:@selector(animationFunction:) forControlEvents:UIControlEventTouchUpInside];  [self.view addSubview:addBtn8];      UIButton *addBtn9 = [[UIButton alloc] initWithFrame:CGRectMake(10,150, 80, 30)];  [addBtn9 setTitle:@"上翻" forState:UIControlStateNormal];  addBtn9.titleLabel.font=[UIFont systemFontOfSize:13.0f];  [addBtn9 setBackgroundColor:[UIColor grayColor]];  addBtn9.tag=9;  [addBtn9 addTarget:self action:@selector(animationFunction2:) forControlEvents:UIControlEventTouchUpInside];  [self.view addSubview:addBtn9];    UIButton *addBtn10 = [[UIButton alloc] initWithFrame:CGRectMake(100,150, 80, 30)];  [addBtn10 setTitle:@"下翻" forState:UIControlStateNormal];  addBtn10.titleLabel.font=[UIFont systemFontOfSize:13.0f];  [addBtn10 setBackgroundColor:[UIColor grayColor]];  addBtn10.tag=10;  [addBtn10 addTarget:self action:@selector(animationFunction2:) forControlEvents:UIControlEventTouchUpInside];  [self.view addSubview:addBtn10];    UIButton *addBtn11 = [[UIButton alloc] initWithFrame:CGRectMake(190,150, 80, 30)];  [addBtn11 setTitle:@"左翻" forState:UIControlStateNormal];  addBtn11.titleLabel.font=[UIFont systemFontOfSize:13.0f];  [addBtn11 setBackgroundColor:[UIColor grayColor]];  addBtn11.tag=11;  [addBtn11 addTarget:self action:@selector(animationFunction2:) forControlEvents:UIControlEventTouchUpInside];  [self.view addSubview:addBtn11];    UIButton *addBtn12 = [[UIButton alloc] initWithFrame:CGRectMake(280,150, 80, 30)];  [addBtn12 setTitle:@"右翻" forState:UIControlStateNormal];  addBtn12.titleLabel.font=[UIFont systemFontOfSize:13.0f];  [addBtn12 setBackgroundColor:[UIColor grayColor]];  addBtn12.tag=12;  [addBtn12 addTarget:self action:@selector(animationFunction2:) forControlEvents:UIControlEventTouchUpInside];  [self.view addSubview:addBtn12];      _imageView = [[UIView alloc] initWithFrame:CGRectMake(0, 190, [UIScreen mainScreen].bounds.size.width, KS_HEIGTH-190)];  [self.view addSubview:_imageView];    blueView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"XXX_123.png"]];  blueView.frame=CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, KS_HEIGTH-150);  [_imageView addSubview:blueView];    greenView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"XXX_321.png"]];  greenView.frame=CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, KS_HEIGTH-150);  [_imageView addSubview:greenView];  }- (void)didReceiveMemoryWarning {  [super didReceiveMemoryWarning];}@end