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里面写不同的列表。
//设备屏幕宽度
#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里面写不同的列表。
相关文章推荐
- nagios配置过程详解
- nagios邮件告警设置方法成功版本
- 『零行代码』解决键盘遮挡问题(iOS)
- Observer(观察者)设计模式
- iOS应用在后台长久运行
- iOS textFiled 在storyBoard中的使用
- iOS事件响应链
- iOS错误解决
- iOS-私有API与runtime
- 正版ipa加载dylib且正常运行思路
- HTML5新标签video在iOS上默认全屏播放
- iOS 使用动态库(dylib)和动态加载framework
- JS判断客户端是否是iOS或者Android
- xcode添加空模板!@!@--------enuoNew项目2版
- iOS安全些许经验和学习笔记
- iOS 查找plist文件路径读取plist 文件
- iOS查看日志利器 —— socat
- iOS开发-显示发送时间(几分钟前,几小时前,几天前)
- [iOS 系统]系统音频.相册.相机 权限判断
- 解惑——iOS中成员变量和属性区别