之前用UIPickerView实现了省市联动,上个月网友让用UITableView给他实现了下。今天也把这些贴出来。
// // ViewController.m // doubleTable // // Created by City--Online on 15/8/5. // Copyright (c) 2015年 City--Online. All rights reserved. // #import "ViewController.h" @interface ViewController ()<UITableViewDataSource,UITableViewDelegate> @property(nonatomic,strong) NSDictionary *dicData; //第一个tableView选择的Index @property (nonatomic,assign) int *firstIndex; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; _firstIndex=0; _firstTable.delegate=self; _firstTable.dataSource=self; _firstTable.translatesAutoresizingMaskIntoConstraints = NO; _firstTable.tableFooterView=[[UIView alloc]initWithFrame:CGRectZero]; _secondTable.delegate=self; _secondTable.dataSource=self; _secondTable.translatesAutoresizingMaskIntoConstraints = NO; _secondTable.tableFooterView=[[UIView alloc]initWithFrame:CGRectZero]; _dicData[email protected]{@"广东省":@[@"深圳",@"广州",@"东莞"],@"河南省":@[@"驻马店",@"周口",@"郑州"]}; [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[_firstTable]-0-[_secondTable(_firstTable)]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_firstTable,_secondTable)]]; [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-80-[_firstTable]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_firstTable)]]; [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-80-[_secondTable]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_secondTable)]]; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { if (tableView==_firstTable) { return _dicData.allKeys.count; } else if (tableView==_secondTable) { NSString *key=[_dicData.allKeys objectAtIndex:_firstIndex]; NSArray *arr=[_dicData objectForKey:key]; return arr.count; } return 0; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"Cell"]; if (cell==nil) { cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"]; } if (tableView==_firstTable) { if (indexPath.row==_firstIndex) { cell.backgroundColor=[UIColor redColor]; } else { cell.backgroundColor=[UIColor whiteColor]; } cell.textLabel.text=[_dicData.allKeys objectAtIndex:indexPath.row]; } else { cell.backgroundColor=[UIColor grayColor]; NSString *key=[_dicData.allKeys objectAtIndex:_firstIndex]; NSArray *arr=[_dicData objectForKey:key]; cell.textLabel.text=[arr objectAtIndex:indexPath.row]; } return cell; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (tableView==_firstTable) { _firstIndex=indexPath.row; [_secondTable reloadData]; [_firstTable reloadData]; } else if (tableView==_secondTable) { NSLog(@"%ld %ld",_firstIndex,indexPath.row); } } -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { if ([cell respondsToSelector:@selector(setSeparatorInset:)]) { [cell setSeparatorInset:UIEdgeInsetsZero]; } #ifdef __IPHONE_8_0 if ([cell respondsToSelector:@selector(setLayoutMargins:)]) { [cell setLayoutMargins:UIEdgeInsetsZero]; } if([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)]){ [cell setPreservesSuperviewLayoutMargins:NO]; } #endif } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
时间: 2024-09-29 00:18:03