首页 > 学院 > 开发设计 > 正文

IOSTableView实现省市联动

2019-11-14 18:16:08
字体:
来源:转载
供稿:网友

之前用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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表