scrollView滑动切换不同试图控制器的视图

来源:互联网 发布:java.io.file jar包 编辑:程序博客网 时间:2024/04/28 16:25

需求:根视图顶部有三个按钮,点击按钮展示不同的界面。 底层一个scrollView,滑动scrollView展示不同的界面。

            按钮和scrollView配合工作  (你懂得)

方法(自认为比较好,一个简单的Demo):

    步骤:

         1)  创建一个根视图控制器RootViewController,用于展示这三个之间的变换

         2)     创建三个子试图控制器,用于分别展示各自的视图。  SecondViewController , ThirdViewController , fourthViewController

         3)  RootViewController中的代码如下:

#import "RootViewController.h"

#import "SecondViewController.h"

#import "ThirdViewController.h"

#import "fourthViewController.h"


#define KScreenHeight [UIScreen mainScreen].bounds.size.height


@interfaceRootViewController()<UIScrollViewDelegate>

{

    UIScrollView *_scrollView;

    UIButton *selectBtn;

}


@end


@implementation RootViewController


- (void)viewDidLoad

{

    NSArray *nameArray = [NSArrayarrayWithObjects:@"机经题库",@"历年考题",@"TPO题库",nil];

    for(int i=0;i<3;i++)

    {

        UIButton *btn = [UIButtonbuttonWithType:UIButtonTypeCustom];

        btn.frame =CGRectMake(40+i*80,20,80,30);

        [btn setTitle:[nameArrayobjectAtIndex:i]forState:UIControlStateNormal];

        [btn setTitleColor:[UIColorblackColor]forState:UIControlStateNormal];

        [btn setTitleColor:[UIColorredColor]forState:UIControlStateSelected];

        btn.tag =200+i;

        if(i==0)

        {

            btn.selected =YES;

            selectBtn = btn;

        }

        [btn addTarget:selfaction:@selector(btnAction:)forControlEvents:UIControlEventTouchUpInside];

        [self.viewaddSubview:btn];

    }

    

    

    _scrollView = [[UIScrollViewalloc]initWithFrame:CGRectMake(0,70,320,KScreenHeight-64-70)];

    _scrollView.contentSize =CGSizeMake(320*3,KScreenHeight -64 -70);

    _scrollView.delegate=self;

    _scrollView.pagingEnabled =YES;

    [self.viewaddSubview:_scrollView];

    

    SecondViewController *secondCtrl = [[SecondViewControlleralloc]init];

    secondCtrl.view.frame =CGRectMake(0,0,320,KScreenHeight-64-70);

    [selfaddChildViewController:secondCtrl];

    

    ThirdViewController *thirdCtrl = [[ThirdViewControlleralloc]init];

    thirdCtrl.view.frame =CGRectMake(320,0,320, KScreenHeight-64-70);

    [selfaddChildViewController:thirdCtrl];

    

    fourthViewController *fourthCtrl = [[fourthViewControlleralloc]init];

    fourthCtrl.view.frame =CGRectMake(640,0,320, KScreenHeight-64-70);

    [selfaddChildViewController:fourthCtrl];

    


    [_scrollViewaddSubview:secondCtrl.view];

    [_scrollViewaddSubview:thirdCtrl.view];

    [_scrollViewaddSubview:fourthCtrl.view];

    

}


#pragma mark-  UIScrollViewDelegate


- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

{

    

    int tag = scrollView.contentOffset.x/320;

    UIButton *btn = (UIButton *)[self.viewviewWithTag:tag+200];

    [self btnAction:btn];

}


- (void)btnAction:(UIButton *)btn

{

    if(selectBtn !=nil)

    {

        selectBtn.selected=NO;

    }

    btn.selected =YES;

    selectBtn = btn;

    

    [_scrollViewsetContentOffset:CGPointMake((btn.tag-200)*320,0)];


}

@end


如有错误,望指出,大家一起进步~~大笑

0 0
原创粉丝点击