您的位置:首页 > 移动开发 > IOS开发

iOS_childController篇

2016-06-30 13:25 309 查看
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里面写不同的列表。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: