iOS 多视图UIView左右来回滑动切换效果

来源:互联网 发布:淘宝的神笔怎么用 编辑:程序博客网 时间:2024/04/28 19:42

多视图页面左右来回滑动切换效果!

////  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];            }   }
0 1
原创粉丝点击