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

时间: 2024-11-03 10:53:37

IOS TableView实现省市联动的相关文章

ajax+php无刷新二级联动下拉菜单(省市联动)源码

ajax.js /** * ajax无刷新二级联动下拉菜单(省市联动) * * @author arcow <arcow@126.com> * @version 1.0 * @lastupdate 2005-12-29 * */ var http_request = false; function send_request(url,method) {//初始化.指定处理函数.发送请求的函数 http_request = false; //开始初始化XMLHttpRequest对象 if(win

js实现省市联动效果的简单实例

 本篇文章主要是对js实现省市联动效果的简单实例进行了介绍,需要的朋友可以过来,希望对大家有所帮助 实例如下: 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/x

JavaScript省市联动实现代码

 这篇文章主要介绍了JavaScript省市联动实现代码,需要的朋友可以参考下  代码如下: <html> <head>     <title>JS省市二级联动菜单,整理收集.</title> </head> <body bgcolor="#FFFFFF" alink="#333333" vlink="#333333" link="#333333" topmar

ajax-ecshop手机端省市联动bug

问题描述 ecshop手机端省市联动bug /*AJAX获取区域信息*/ if($act == 'ajax_get_region') { $region_id = intval($_GET['region_id']); $type = intval($_GET['type']); $region = get_regions($type, $region_id); //print_r($region); $html = $onclick = ''; switch ($type){ case '1'

基于jquery实现省市联动特效_jquery

本文实例讲述了基于jquery实现省市联动特效的代码,分享给大家供大家参考,具体如下: 运行效果图: 具体代码如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Demo</title> <!-- 引入jquery --> <script src="http://lib.si

ios tableview cell的自定义左滑按钮

问题描述 ios tableview cell的自定义左滑按钮 ios tableview cell的自定义左滑按钮是ios8之后才出现,那么在这之前使用什么方法实现的? 解决方案 这个应该能帮助你http://www.cocoachina.com/ios/20151118/14243.html

需求-ios TableView的headView的高度问题

问题描述 ios TableView的headView的高度问题 有一个需求,一开始headview的高度是400,当我点击headview中的一个按钮是,要把headview的高度变成800,试了好几种方法都没实现该功能 解决方案 (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 这个方法可以做到,不过记得reload data. 解决方案二: 楼主 是怎么修改的 是通

ios 列表 伸缩-ios - tableview

问题描述 ios - tableview 点击cell中的按钮,将cell中的标签视图隐藏起来,并将高度缩小. 解决方案 给cell中得标签设置Tag值,在cellDidSelectAtIndexPath中通过[cell viewWithTag:tag]获得标签,然后缩小和隐藏标签...

ios tableview怎样一上来就让tableview的最上面显示的是第3行!兄弟帮忙看一看

问题描述 ios tableview怎样一上来就让tableview的最上面显示的是第3行!兄弟帮忙看一看 ios tableview怎样一上来就让tableview的最上面显示的是第3行!兄弟帮忙看一看.............就是想自由控制tableview第一行内容显示 解决方案 [[self tableView] scrollToRowAtIndexPath:(indexpath ) atScrollPosition:UITableViewScrollPositionTop animat