IOS 多视图UIView左右来回滑动切换效果!
多视图页面左右来回滑动切换效果!
//
// 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 = [[NSMutableArrayalloc]initWithObjects:@"B0",@"B1",@"B2",@"B3",@"B4",@"B5",@"B6",@"B7",@"B8",@"B9",nil];
viewArray=[[NSMutableArrayalloc]init];
//动态生成视图并添加按钮
for (int i=0; i<ViewNumber; i++) {
dwView=[[UIViewalloc] initWithFrame:CGRectMake(0,0, 320,460)];
dwView.tag=i;
dwBtn=[UIButtonbuttonWithType:UIButtonTypeRoundedRect];
dwBtn.frame=CGRectMake(100,100,55,55);
dwBtn.tag=i;
[dwBtnsetTitle:[titleArrayobjectAtIndex:i] forState:UIControlStateNormal];
[dwBtnaddTarget:selfaction:@selector(buttonClick:)forControlEvents:UIControlEventTouchUpInside];
[dwView addSubview:dwBtn];
[viewArray addObject:dwView];
[self.view addSubview:dwView];
}
[self.viewbringSubviewToFront:[viewArrayobjectAtIndex:0]];
UISwipeGestureRecognizer *recognizer;
recognizer = [[UISwipeGestureRecognizeralloc] initWithTarget:selfaction:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionRight)];
[[selfview] addGestureRecognizer:recognizer];
[recognizer release];
recognizer = [[UISwipeGestureRecognizeralloc] initWithTarget:selfaction:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionLeft)];
[[selfview] addGestureRecognizer:recognizer];
[recognizer release];
[superviewDidLoad];
}
//手势
- (IBAction)handleSwipeFrom:(UISwipeGestureRecognizer *)sender{
if (sender.direction==UISwipeGestureRecognizerDirectionLeft )
{
if(dwNum<0)
dwNum=0;
else if(dwNum!=0)
dwNum--;
[UIViewbeginAnimations:nilcontext:nil];
//持续时间
[UIViewsetAnimationDuration:1.0];
//在出动画的时候减缓速度
[UIViewsetAnimationCurve:UIViewAnimationCurveEaseOut];
//添加动画开始及结束的代理
[UIViewsetAnimationDelegate:self];
[UIViewsetAnimationWillStartSelector:@selector(begin)];
[UIViewsetAnimationDidStopSelector:@selector(stopAni)];
//动画效果
[UIViewsetAnimationTransition:UIViewAnimationTransitionCurlUpforView:self.viewcache:YES];
//View切换
for (int i=0; i<10; i++) {
if(dwNum!=i)
[[viewArrayobjectAtIndex:i] removeFromSuperview];
else
[self.viewinsertSubview:[viewArrayobjectAtIndex:i] atIndex:0];
}
[UIViewcommitAnimations];
}
elseif(sender.direction=UISwipeGestureRecognizerDirectionRight)
{
if(dwNum>9)
dwNum=9;
else if(dwNum!=9)
dwNum++;
[UIViewbeginAnimations:nilcontext:nil];
//持续时间
[UIViewsetAnimationDuration:1.0];
//在出动画的时候减缓速度
[UIViewsetAnimationCurve:UIViewAnimationCurveEaseOut];
//添加动画开始及结束的代理
[UIViewsetAnimationDelegate:self];
[UIViewsetAnimationWillStartSelector:@selector(begin)];
[UIViewsetAnimationDidStopSelector:@selector(stopAni)];
//动画效果
[UIViewsetAnimationTransition:UIViewAnimationTransitionCurlUpforView:self.viewcache:YES];
//View切换
for (int i=0; i<10; i++) {
if(dwNum!=i)
[[viewArrayobjectAtIndex:i] removeFromSuperview];
else
[self.viewinsertSubview:[viewArray objectAtIndex:i] atIndex:0];
}
[UIView commitAnimations];
}
}