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.创建下面的scrollViewAllOrderController *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里面写不同的列表。- iOS_childController篇
- 实习篇---轻松篇
- iOS篇-block篇
- javascript 第四篇/第五篇(入门篇)
- 导读篇
- 基础篇
- 军事力量篇
- 告别篇
- 务虚篇
- 创业篇
- 斗争篇
- 处子篇
- 开题篇
- 处男篇
- 开山篇
- 数据仓库篇
- 经历篇
- 接上篇
- php
- Lua中的模块(module)和包(package)详解
- Android 框架练成 教你打造高效的图片加载框架
- Python 黑帽子 snffer ip header decoder
- C/C++中的struct
- iOS_childController篇
- Leetcode-maximum-subarray
- 如何在Android 上面实现GATT Server
- __FILE__,__LINE__
- Acm课程总结
- HDOJ 3501 Calculation 2
- jQuery请求网络(Access-Control-Allow-Origin)
- 开发环境、测试环境、生产环境区别
- float与double类型的范围和精度