UIPickerView 创建中国地区显示 省份 市
第一步初始化 UIPickerView *pickerview; //城市滚动表
NSDictionary *dict; //用于存储省份-城市的数据
NSArray *provinceArray; //省份的数组
NSArray *cityArray; //城市的数组
第二步需要引入代理 UIPickerViewDataSource,UIPickerViewDelegate,
第三步把拥有的地区从文件取出来 要文件留言NSBundle *bundle = [NSBundle mainBundle];
NSString *plistPath = [bundle pathForResource:@"city" ofType:@"plist"];
provinceArray=[NSArray arrayWithContentsOfFile:plistPath];
NSLog(@"-----------%@",provinceArray);
cityArray = [[provinceArray objectAtIndex:0] objectForKey:@"cities"];
NSLog(@"+ + + + + %@",cityArray);
pickerview = [[UIPickerView alloc]initWithFrame:CGRectMake(50, 200, 250, 100)];
pickerview.delegate =self;
pickerview.dataSource =self;
[self.View addSubview:pickerview];
//用来显示取出的地区名字
placelabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 55, Kwidth, 25)];
placelabel.backgroundColor = [UIColor redColor];
placelabel.textAlignment = NSTextAlignmentLeft;
[self.View addSubview:placelabel];
下面的为代理方法
//轮子个数
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 2;
}
//确定picker的每个轮子的item数
- (NSInteger)pickerView:(UIPickerView *)pickerView
numberOfRowsInComponent:(NSInteger)component {
if (component == 0) {//省份个数
return [provinceArray count];
} else {//市的个数
return [cityArray count];
}
}
//确定每个轮子的每一项显示什么内容
#pragma mark 实现协议UIPickerViewDelegate方法
-(NSString *)pickerView:(UIPickerView *)pickerView
titleForRow:(NSInteger)row forComponent:(NSInteger)component {
switch (component) {
case 0:
return [[provinceArray objectAtIndex:row] objectForKey:@"state"];
break;
case 1:
return [cityArray objectAtIndex:row];
break;
default:
return @"";
break;
}
}
//监听轮子的移动
- (void)pickerView:(UIPickerView *)pickerView
didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
// NSLog(@"1111111111111 %d",cityArray.count);
// NSLog(@"1111111111111 %d",provinceArray.count);
//
switch (component) {
case 0:
cityArray = [[provinceArray objectAtIndex:row] objectForKey:@"cities"];
[pickerView selectRow:0 inComponent:1 animated:YES];
[pickerView reloadComponent:1];
NSLog(@"%@",[[provinceArray objectAtIndex:row] objectForKey:@"state"]);
NSLog(@"%@",[cityArray objectAtIndex:0]);
pla = [[NSString alloc]initWithFormat:@"%@",[[provinceArray objectAtIndex:row] objectForKey:@"state"]];
placelabel.text = [NSString stringWithFormat:@"%@-%@",[[provinceArray objectAtIndex:row] objectForKey:@"state"],[cityArray objectAtIndex:0]];
break;
case 1:
NSLog(@"%@",[cityArray objectAtIndex:row]);
placelabel.text = [NSString stringWithFormat:@"%@-%@",pla,[cityArray objectAtIndex:row]];
break;
default:
break;
}
}
UIPickerView 创建中国地区显示 省份 市的更多相关文章
- JS 实现地区,省份,城市,县区4级联动
刚学JS,实战一下,做一个省份信息4级联动. 但是网上查了都是3级的,没有4级,现在做一个的是带地区的4级联动,最简单的办法是修改别人的代码,最开始找到的事类似于下边这个的: 省市县关联菜单 < ...
- Oracle Sales Cloud:管理沙盒(定制化)小细节1——利用公式创建字段并显示在前端页面
Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的CRM管理系统.由于 Oracle 销售云是基于 Oracle 云环境的,它与传统的管理系统相比,显著特点之一便 ...
- ios 在中国地区,24小时时间格式 系统设定下 获得12小时制时间的方法
如题,在中国地区,24小时时间格式 系统设定下,如果单单使用 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 之后,无论用hh ...
- WPF动态创建Image的显示问题
原文:WPF动态创建Image的显示问题 最近学习WPF,看到一篇教程讲解如何动态创建Image控件,自己练手时候无论如何也显示不出图片.刚开始以为是图片的路径有问题,可后来将图片的路径设为相对路径或 ...
- 插入中国所有省和市的SQL语句--以后用
需要做根据省市过滤查询的,不得已写入数据库,这个留着方便以后用. 首先创建两张表 drop database if exists BSM; create database BSM; use BSM; ...
- ASP.NET - 演练:创建网页以显示 XML 数据
数据通常是以 XML 格式提供给 Web 应用程序的.但是,XML 数据本质上是分层的,因此您可能希望能够在基于列表的控件中使用 XML 数据,如 GridView 或 DropDownList 控件 ...
- 关于直接创建视图UITableViewController显示(初学)
今天渣渣想直接创建一个UITableView视图作为根视图来用结果发现有警告,才明白TableView和view是不能直接作为根视图的,需要放在ViewController上.做个笔记详细了解下. 参 ...
- Linux编程 20 shell编程(shell脚本创建,echo显示信息)
一概述 前面19章里已经掌握了linux系统和命令行的基础知识,从本章开始继续学习shell脚本的基础知识.在大量编辑shell脚本前,先来学习下一些基本概念. 1.1 使用多个命令 Shell ...
- 全国地区的省份、城市、区县 最新Sql脚本
IF (EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TB_Province]') AND type =' ...
随机推荐
- CVPR 2013
CVPR2013大部分文章都已经公开了,大家可以通过下面的网址访问: http://www.cv-foundation.org/openaccess/CVPR2013.py# 还有一篇根据CVPR20 ...
- sql server DateTime相关内置函数总结
本文部分内容参考msdn帮助文档和博客园!汇总备忘 1.获取当前日期 getdate()函数以datetime数据类型的格式返回当前SQLServer服务器所在计算机的日期和时间.其语法格式 ...
- 抛掉kendoUI的MultiSelect,自己实现 DropDownList MultiSelect
我们首先来看下kendoUI官方的下拉框多选: 再来看看telerik RadControls的下拉框多选: 很明显从展现形式上来看,第二种是优于第一种的,至少我是这么认为的 :-) 那我们就对Dro ...
- 还原数据时出现的“FILESTREAM功能被禁用”问题
解决SQLSERVER在还原数据时出现的“FILESTREAM功能被禁用”问题 解决SQLSERVER在还原数据时出现的“FILESTREAM功能被禁用”问题 今天由于测试需要,在网上下载了Adven ...
- NodeJs之进程守护
进程守护 由于nodejs的单线程的脆弱性,一旦遇到运行错误便会严重到退出node进程导致系统或应用瘫痪,所以pm2,forever出现了,帮助我们实现进程的重启,这只是他们的特性之一. 实例演示进程 ...
- C语言之总结3
23). 内存中的五大区域 a. 栈 是专门用来存储局部变量的.所有的局部变量都是声明在栈区域中的. b. 堆 允许程序员手动的从堆申请空间来使用.(对象) c. BSS段 是用来存储未初始化的全局变 ...
- c#-委托,匿名方法,lambda表达的关系
什么是委托: 包含单个方法的委托和函数指针是相似的,不同的是,委托是面向帝乡的并且是类型安全的 声明委托类型: delegate void mydel(int x); 声明委托和声明方法差不多,两个不 ...
- 【摘录】使用实体框架、Dapper和Chain的仓储模式实现策略
以下文章摘录来自InfoQ,是一篇不错的软问,大家细细的品味 关键要点: Dapper这类微ORM(Micro-ORM)虽然提供了最好的性能,但也需要去做最多的工作. 在无需复杂对象图时,Chain这 ...
- 微信JSAPI支付 跟 所遇到的那些坑
首先介绍一下我在调用微信支付接口使用的是 weixin.senparc SDK,非常方便好用开源的一个微信开发SDK. weixin.senparc SDK 官网:http://weixin.senp ...
- SAP CRM 为用户创建业务合作伙伴并分配到组织单位
想要在SAP CRM的前台完成一些操作,需要登录的用户在系统中存在对应的业务合作伙伴才可以,某些情况下,还需要被分配到正确的公司.部门.职位.下面是相关的操作步骤. 本文假定读者已经拥有一个开发帐号. ...