用UIpickView实现省市的联动

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UIPickerViewDataSource,UIPickerViewDelegate>

@property(strong,nonatomic)UIPickerView *pickView;

//定义一个可变数组用于存放省的数据

@property(strong,nonatomic)NSMutableArray *Statearry;

//定义一个可变数组用于存放市的数据

@property(strong,nonatomic)NSMutableArray *Citiesarry;

//定义一个集合分别存省和市的数据

@property(strong,nonatomic)NSArray *arry;

@end

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

//获取数据

NSString *path=[[NSBundle mainBundle] pathForResource:@"city" ofType:@"plist"];

//初始化省和市的数组

self.Statearry=[NSMutableArray array];

self.Citiesarry=[NSMutableArray array];

//ayyr这个大数组存放所有的省市

self.arry=[NSArray arrayWithContentsOfFile:path];

//获取省份的,将取出来的省份数据放在省的可变集合Statearry里

for (NSDictionary *arr in self.arry)

{

[self.Statearry addObject:arr[@"State"]];

}

//创建pickView

self.pickView=[[UIPickerView alloc] initWithFrame:CGRectMake(0, 200, 414, 200)];

self.pickView.backgroundColor=[UIColor grayColor];

self.pickView.delegate=self;

self.pickView.dataSource=self;

[self.view addSubview:self.pickView];

}

#pragma mark 数据源 Method numberOfComponentsInPickerView

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

{

//两列

return 2;

}

#pragma mark 数据源 Method pickerViewOfRows

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component

{

if (component==0)

{

//省份的个数

return self.Statearry.count;

}

else

{

//市的个数

return self.Citiesarry.count;

}

}

#pragma mark delegate 显示信息的方法

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component

{

if (component==0)

{

//选择的省份

return self.Statearry[row];

}

else

{

//选择的市

return self.Citiesarry[row];

}

}

#pragma mark 选中行的信息

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component

{

if (component==0)

{

//清空上一次市的那一列留下来的数据

[self.Citiesarry removeAllObjects];

//定义一个index,找出第一个滚动条里面的所有省对应的下标找出来,赋值给index

NSInteger index=[pickerView selectedRowInComponent:0];

//遍历出所有市

for (NSDictionary *city in self.arry[index][@"Cities"])

{

//将遍历出来市追加到存放市的集合里

[self.Citiesarry addObject:city[@"city"]];

}

//        NSLog(@"%@",self.Citiesarry);

//更新第二个滚轮的数据

[self.pickView reloadComponent:1];

}

else

{

//显示取出来的省和市

NSString *message=[NSString stringWithFormat:@"你选择的是%@的%@?",self.Statearry[[pickerView selectedRowInComponent:0]],self.Citiesarry[row]];

//设置弹出框的标题

UIAlertController *alert=[UIAlertController alertControllerWithTitle:@"提示" message:message preferredStyle:UIAlertControllerStyleAlert];

//设置按钮名称

UIAlertAction *okAction=[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {

}];

//设置按钮名称

UIAlertAction *cancelAction=[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];

//将按钮加到提示框里面

[alert addAction:okAction];

[alert addAction:cancelAction];

//

[self presentViewController:alert animated:YES completion:nil];

}

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

时间: 2024-11-06 05:51:31

用UIpickView实现省市的联动的相关文章

JS实现省市二级联动

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF

JavaScript省市二级联动

cities.xml <?xml version="1.0" encoding="GB2312"?> <china> <province name="吉林省"> <city>长春</city> <city>吉林市</city> <city>四平</city> <city>松原</city> <city>通

省市二级联动--使用app-jquery-cityselect.js插件

只有省市二级联动,三级联动还没处理好,会尽快完善. 嵌入id: <div class="form-group"> <label>地址</label> <p>从:</p> <div class="input-group"> <input id="areaIdFrom" name="areaIdFrom" type="hidden"

jsp+ajax+serverlet实现省市二级联动

jsp界面 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&g

[moka同学笔记]Yii下国家省市三级联动

第一次做省市三级联动时候遇到了坑,感觉还是自己太菜.头疼了很久研究了很久,最后终于发现了问题.大致总结一下思路 在控制器中实例化model,然后在视图中渲染所有国家,当选取国家时候,ajax通过 id="community-country_id" 把country_id传递到控制器中,控制器通过$this->ajaxGetProvince(); 得到country_id相同的省,再在视图中渲染显示该国家下省,选取省后,ajax再通过id="community-provi

(转)JavaScript html js 地区二级联动,省市二级联动,省市县js+xml三级联动

JavaScript html js 地区二级联动,省市二级联动,省市县js+xml三级联动 原文链接:http://heisetoufa.iteye.com/blog/353974 比较好的二级联动: 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2 <HTML> 3 <HEAD> 4 <TITLE> New Document </TITLE>

Pyqt QComboBox 省市区县联动效果

在Qt中, QComboBox方法窗口组件允许用户从列表清单中选择,在web中就是select标签,下拉选项. 省市区县的联动就是currentIndexChanged 获取当前的Index,通过这个索引在获取用户自定义的 QVariant auserData 获取这个Data后请求该父类pid为当前Data的词典key与value 下面详细讲述过程: 一.先用Qt Designer 画出界面 保存Qt Designer生成的文件为comboselect.ui, 其实这个ui文件就是XML文件,

JavaScript实现省市二级联动

    JavaScript实现省市二级联动 展示一下效果? 当我鼠标点击前面的省那一栏的时候后面市那一栏会出现相对应的下辖市 实现思路 1. 添加相对应的select容器 2. 然后添加数据 3. 将相应的数据赋值给对应的option控件 方法的讲解 Function()函数 onchange();改变事件 笔者在这里写了一个关于河南与河北的简单联动   省市联动 <body> <select id="province"></select>省 &l

微信小程序picker组件 - 省市二级联动

微信小程序picker组件自带省市区选择器,但是业务需求需要省市选择器,参考官方demo自己写了一个省市选择器 wxml文件 <view class="section"> <view class="section__title">省市二级联动demo</view> <picker mode="multiSelector" bindchange="bindMultiPickerChange&quo