你的位置:首页 > 操作系统

[操作系统]IOS TableView实现省市联动


之前用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=@{@"广东省":@[@"深圳",@"广州",@"东莞"],@"河南省":@[@"驻马店",@"周口",@"郑州"]};       [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