之前用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
新闻热点
疑难解答