iOS_childController篇

来源:互联网 发布:matlab在线编程 编辑:程序博客网 时间:2024/05/01 13:29

iOS开发中有时候会遇到一个控制器中会有几个不同的列表,上面还有按钮切换并且还能左右滑动。这种情况会在一个控制器中建多个tableView,但是tableView一多就难以控制,所有用childController就会很方便,闲话不多说,直接上代码。

//设备屏幕宽度

#ifndef SCREEN_WIDTH

#define SCREEN_WIDTH    [UIScreen mainScreen].bounds.size.width

#endif

//设备屏幕高度

#ifndef SCREEN_HEIGTH

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

#endif


1.首先在父控制器中建上下两个scrollView,一个是标题行,一个是列表行

_topScrollView=[[UIScrollViewalloc]initWithFrame:CGRectMake(0,0,SCREEN_WIDTH,50)];

    _topScrollView.delegate=self;

    _topScrollView.contentSize=CGSizeMake(SCREEN_WIDTH*7/4,50);

    [self.viewaddSubview:_topScrollView];

NSArray *arr=@[@"全部",@"待处理",@"待取货",@"取货途中",@"待评价",@"已评价",@"交易关闭"];

    for (int i=0; i<7; i++) {

        UIButton *button=[[UIButtonalloc]initWithFrame:CGRectMake(i*SCREEN_WIDTH/4,0,SCREEN_WIDTH/4,48)];

        [button setTitle:arr[i]forState:UIControlStateNormal];

        button.titleLabel.font=[UIFontsystemFontOfSize:15];

        [button setTitleColor:[UIColorhexValue:0x333333]forState:UIControlStateNormal];

        [button addTarget:selfaction:@selector(selectSautasAction:)forControlEvents:UIControlEventTouchUpInside];

        button.tag=i;

        [_topScrollViewaddSubview:button];

    }

2.创建下面的scrollView

AllOrderController *oneController = [[AllOrderControlleralloc]init];

    PendingTreatmentOrderController *twoController = [[PendingTreatmentOrderControlleralloc]init];

    ToPickUpController *threeController = [[ToPickUpControlleralloc]init];

    OnWayOrderController *fourController = [[OnWayOrderControlleralloc]init];

    SuccessOrderController *fiveController = [[SuccessOrderControlleralloc]init];

    CompleteOrderController *sixController = [[CompleteOrderControlleralloc]init];

    ColseOrderController *sevenController = [[ColseOrderControlleralloc]init];

    

    [selfaddChildViewController:oneController];

    [selfaddChildViewController:twoController];

    [selfaddChildViewController:threeController];

    [selfaddChildViewController:fourController];

    [selfaddChildViewController:fiveController];

    [selfaddChildViewController:sixController];

    [selfaddChildViewController:sevenController];

    

    

    oneController.view.frame =CGRectMake(0,0,SCREEN_WIDTH,SCREEN_HEIGTH -64-50);

    twoController.view.frame =CGRectMake(SCREEN_WIDTH,0,SCREEN_WIDTH,SCREEN_HEIGTH -64-50);

    threeController.view.frame =CGRectMake(2*SCREEN_WIDTH,0,SCREEN_WIDTH,SCREEN_HEIGTH -64-50);

    fourController.view.frame =CGRectMake(3*SCREEN_WIDTH,0,SCREEN_WIDTH,SCREEN_HEIGTH -64-50);

    fiveController.view.frame =CGRectMake(4*SCREEN_WIDTH,0,SCREEN_WIDTH,SCREEN_HEIGTH -64-50);

    sixController.view.frame =CGRectMake(5*SCREEN_WIDTH,0,SCREEN_WIDTH,SCREEN_HEIGTH -64-50);

    sevenController.view.frame =CGRectMake(6*SCREEN_WIDTH,0,SCREEN_WIDTH,SCREEN_HEIGTH -64-50);

    

    _scrollView = [[UIScrollViewalloc]initWithFrame:CGRectMake(0,50,SCREEN_WIDTH,SCREEN_HEIGTH -60-75+35)];

    _scrollView.contentSize =CGSizeMake(SCREEN_WIDTH *7, 0);

    _scrollView.contentOffset =CGPointMake(0,0);

    _scrollView.pagingEnabled =YES;

    _scrollView.bounces =NO;

    _scrollView.delegate=self;

    _scrollView.showsHorizontalScrollIndicator =NO;

    [_scrollViewaddSubview:oneController.view];

    [_scrollViewaddSubview:twoController.view];

    [_scrollViewaddSubview:threeController.view];

    [_scrollViewaddSubview:fourController.view];

    [_scrollViewaddSubview:fiveController.view];

    [_scrollViewaddSubview:sixController.view];

    [_scrollViewaddSubview:sevenController.view];

    

    [self.viewaddSubview:_scrollView];

3.实现每一个标签的点击事件

-(void)selectSautasAction:(UIButton *)sender{

    [_scrollViewsetContentOffset:CGPointMake(SCREEN_WIDTH*sender.tag,0)];

}

4.监听scrollView的滑动事件

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{

    if (scrollView==_scrollView) {

        if (scrollView.contentOffset.x==SCREEN_WIDTH*4) {

            [_topScrollViewsetContentOffset:CGPointMake(SCREEN_WIDTH/4,0)];

        }elseif (scrollView.contentOffset.x==SCREEN_WIDTH*5){

            [_topScrollViewsetContentOffset:CGPointMake(SCREEN_WIDTH*2/4,0)];

        }elseif (scrollView.contentOffset.x==SCREEN_WIDTH*6){

            [_topScrollViewsetContentOffset:CGPointMake(SCREEN_WIDTH*3/4,0)];

        }elseif (scrollView.contentOffset.x==SCREEN_WIDTH*0){

            [_topScrollViewsetContentOffset:CGPointMake(0,0)];

        }elseif (scrollView.contentOffset.x==SCREEN_WIDTH*1){

            [_topScrollViewsetContentOffset:CGPointMake(0,0)];

        }elseif (scrollView.contentOffset.x==SCREEN_WIDTH*2){

            [_topScrollViewsetContentOffset:CGPointMake(0,0)];

        }elseif (scrollView.contentOffset.x==SCREEN_WIDTH*3){

        }

    }

}

5.最后可以在点击事件和滑动事件里做自己想要的操作。在每一个子controller里面写不同的列表。
1 0
原创粉丝点击