读书人

IOS 多视图UIView上下来回滑动切换效果

发布时间: 2013-02-24 17:58:56 作者: rapoo

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];

}

}



读书人网 >操作系统

热点推荐