iOS 利用 UISegmentedControl在同一个控制器切换不同的tableView
2017-01-06 16:15
393 查看
先上效果图1:
2:
类似于QQ顶部的消息、电话选择。原理比较简单:主要通过UISegmentedControl来控制两个tableView的显示来隐藏。直接上代码
主要代码段:
2:
类似于QQ顶部的消息、电话选择。原理比较简单:主要通过UISegmentedControl来控制两个tableView的显示来隐藏。直接上代码
#import "LeaveListViewController.h" @interface LeaveListViewController ()<UITableViewDelegate,UITableViewDataSource> @property (nonatomic,strong)NSMutableArray *leftArray; @property (nonatomic,strong)NSMutableArray *rigthArray; @property (nonatomic,assign)int tag; @end @implementation LeaveListViewController static UITableView *leftTableView; static UITableView *rigthTaleView; - (NSMutableArray *)leftArray { if (!_leftArray) { _leftArray = [NSMutableArray array]; } return _leftArray; } - (NSMutableArray *)rigthArray { if (!_leftArray) { _leftArray = [NSMutableArray array]; } return _leftArray; } - (void)viewDidLoad { [super viewDidLoad]; self.tag = 0; [self initSegment]; [self initTableView]; // Do any additional setup after loading the view. } - (void)initSegment{ //先生成存放标题的数据 NSArray *array = [NSArray arrayWithObjects:@" 我的 ",@" 处理 ", nil]; //初始化UISegmentedControl UISegmentedControl *segment = [[UISegmentedControl alloc]initWithItems:array]; //根据内容定分段宽度 segment.apportionsSegmentWidthsByContent = YES; //开始时默认选中下标(第一个下标默认是0) segment.selectedSegmentIndex = 0; //控件渲染色(也就是外观字体颜色) segment.tintColor = [UIColor whiteColor]; // 设置指定索引选项的宽度(设置下标为2的分段宽度) [segment setWidth:60.0 forSegmentAtIndex:0]; [segment setWidth:60.0 forSegmentAtIndex:1]; //添加事件 [segment addTarget:self action:@selector(change:) forControlEvents:UIControlEventValueChanged]; //添加到视图 self.navigationItem.titleView = segment; } - (void)initTableView { leftTableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, AMPScreenWidth, AMPScreenheight) style:UITableViewStylePlain]; leftTableView.delegate = self; leftTableView.dataSource = self; leftTableView.estimatedRowHeight = 44.0f; leftTableView.rowHeight = UITableViewAutomaticDimension; leftTableView.showsVerticalScrollIndicator = NO; [self.view addSubview:leftTableView]; rigthTaleView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, AMPScreenWidth, AMPScreenheight) style:UITableViewStylePlain]; rigthTaleView.delegate = self; rigthTaleView.dataSource = self; rigthTaleView.estimatedRowHeight = 44.0f; rigthTaleView.rowHeight = UITableViewAutomaticDimension; rigthTaleView.backgroundColor = [UIColor redColor]; rigthTaleView.showsVerticalScrollIndicator = NO; [self.view addSubview:rigthTaleView]; if (self.tag == 0) { rigthTaleView.hidden = YES; } } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { if (self.tag == 0) { return self.leftArray.count; }return self.rigthArray.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { if (self.tag == 0) { UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"left"]; return cell; } else if (self.tag == 1) { UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"left"]; return cell; } return nil; } //点击不同分段就会有不同的事件进行相应 -(void)change:(UISegmentedControl *)sender{ if (sender.selectedSegmentIndex == 0) { leftTableView.hidden = NO; rigthTaleView.hidden = YES; self.tag = 0; [leftTableView reloadData]; }else if (sender.selectedSegmentIndex == 1){ rigthTaleView.hidden = NO; leftTableView.hidden = YES; self.tag = 1; [rigthTaleView reloadData]; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ @end
主要代码段:
- (void)initSegment{ //先生成存放标题的数据 NSArray *array = [NSArray arrayWithObjects:@" 我的 ",@" 处理 ", nil]; //初始化UISegmentedControl UISegmentedControl *segment = [[UISegmentedControl alloc]initWithItems:array]; //根据内容定分段宽度 segment.apportionsSegmentWidthsByContent = YES; //开始时默认选中下标(第一个下标默认是0) segment.selectedSegmentIndex = 0; //控件渲染色(也就是外观字体颜色) segment.tintColor = [UIColor whiteColor]; // 设置指定索引选项的宽度(设置下标为2的分段宽度) [segment setWidth:60.0 forSegmentAtIndex:0]; [segment setWidth:60.0 forSegmentAtIndex:1]; //添加事件 [segment addTarget:self action:@selector(change:) forControlEvents:UIControlEventValueChanged]; //添加到视图 self.navigationItem.titleView = segment; } - (void)initTableView { leftTableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, AMPScreenWidth, AMPScreenheight) style:UITableViewStylePlain]; leftTableView.delegate = self; leftTableView.dataSource = self; leftTableView.estimatedRowHeight = 44.0f; leftTableView.rowHeight = UITableViewAutomaticDimension; leftTableView.showsVerticalScrollIndicator = NO; [self.view addSubview:leftTableView]; rigthTaleView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, AMPScreenWidth, AMPScreenheight) style:UITableViewStylePlain]; rigthTaleView.delegate = self; rigthTaleView.dataSource = self; rigthTaleView.estimatedRowHeight = 44.0f; rigthTaleView.rowHeight = UITableViewAutomaticDimension; rigthTaleView.backgroundColor = [UIColor redColor]; rigthTaleView.showsVerticalScrollIndicator = NO; [self.view addSubview:rigthTaleView]; if (self.tag == 0) { rigthTaleView.hidden = YES; } } //点击不同分段就会有不同的事件进行相应 -(void)change:(UISegmentedControl *)sender{ if (sender.selectedSegmentIndex == 0) { leftTableView.hidden = NO; rigthTaleView.hidden = YES; self.tag = 0; [leftTableView reloadData]; }else if (sender.selectedSegmentIndex == 1){ rigthTaleView.hidden = NO; leftTableView.hidden = YES; self.tag = 1; [rigthTaleView reloadData]; } }
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 云巴 2016 年更新合集——SDK 篇
- 第三方推送已死
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- QQ商业化,如何实现从0到1的破局?
- 十年生死两茫茫,Linux QQ 突然复活!
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- VB实现的《QQ美女找茬游戏》作弊器实例
- 路由器端QQ封堵方案
- QQ输入法自动删除其它输入法的解决方法
- 让普通QQ号也能克隆QQ好友
- 基于ASP实现QQ在线查询功能
- VBS取QQ或TM自动登录代码并防止关闭的脚本
- Android自定义View仿QQ健康界面