多视图页面左右来回滑动切换效果!
//
// ViewController.h
// demoA0
//
// Created by yuhang on 13-2-18.
// Copyright (c) 2013年 yuhang. All rights reserved.
//
#import <UIKit/UIKit.h>
#define ViewNumber 10
@interface ViewController : UIViewController
{
UIView *dwView;
UIButton *dwBtn;
NSMutableArray *viewArray,*titleArray;
}
@property(nonatomic,assign)NSInteger dwNum;
@end
///
//
// ViewController.m
// demoA0
//
// Created by yuhang on 13-2-18.
// Copyright (c) 2013年 yuhang. All rights reserved.
//
#import "ViewController.h"
#import <QuartzCore/CATransaction.h>
@interface ViewController ()
@end
@implementation ViewController
@synthesize dwNum;
- (void)viewDidLoad
{
dwNum=0;
//button标答
titleArray = [[NSMutableArray alloc]initWithObjects:@"B0",@"B1",@"B2",@"B3",@"B4",@"B5",@"B6",@"B7",@"B8",@"B9", nil];
viewArray=[[NSMutableArray alloc]init];
//动态生成视图并添加按钮
for (int i=0; i<ViewNumber; i++) {
dwView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
dwView.tag=i;
dwBtn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
dwBtn.frame=CGRectMake(100,100,55,55);
dwBtn.tag=i;
[dwBtn setTitle:[titleArray objectAtIndex:i] forState:UIControlStateNormal];
[dwBtn addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
[dwView addSubview:dwBtn];
[viewArray addObject:dwView];
[self.view addSubview:dwView];
}
[self.view bringSubviewToFront:[viewArray objectAtIndex:0]];
UISwipeGestureRecognizer *recognizer;
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionRight)];
[[self view] addGestureRecognizer:recognizer];
[recognizer release];
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionLeft)];
[[self view] addGestureRecognizer:recognizer];
[recognizer release];
[super viewDidLoad];
}
//手势
- (IBAction)handleSwipeFrom:(UISwipeGestureRecognizer *)sender{
if (sender.direction==UISwipeGestureRecognizerDirectionLeft )
{
if(dwNum<0)
dwNum=0;
else if(dwNum!=0)
dwNum--;
[UIView beginAnimations:nil context:nil];
//持续时间
[UIView setAnimationDuration:1.0];
//在出动画的时候减缓速度
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
//添加动画开始及结束的代理
[UIView setAnimationDelegate:self];
[UIView setAnimationWillStartSelector:@selector(begin)];
[UIView setAnimationDidStopSelector:@selector(stopAni)];
//动画效果
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
//View切换
for (int i=0; i<10; i++) {
if(dwNum!=i)
[[viewArray objectAtIndex:i] removeFromSuperview];
else
[self.view insertSubview:[viewArray objectAtIndex:i] atIndex:0];
}
[UIView commitAnimations];
}
else if(sender.direction=UISwipeGestureRecognizerDirectionRight)
{
if(dwNum>9)
dwNum=9;
else if(dwNum!=9)
dwNum++;
[UIView beginAnimations:nil context:nil];
//持续时间
[UIView setAnimationDuration:1.0];
//在出动画的时候减缓速度
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
//添加动画开始及结束的代理
[UIView setAnimationDelegate:self];
[UIView setAnimationWillStartSelector:@selector(begin)];
[UIView setAnimationDidStopSelector:@selector(stopAni)];
//动画效果
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];
//View切换
for (int i=0; i<10; i++) {
if(dwNum!=i)
[[viewArray objectAtIndex:i] removeFromSuperview];
else
[self.view insertSubview:[viewArray objectAtIndex:i] atIndex:0];
}
[UIView commitAnimations];
}
}