城市选择功能实现

步骤一:解析plist文件,创建对应的模型。

+ (instancetype)cityWithDict:(NSDictionary *)dict

{

return [[self
alloc] initWithDict:dict];

}

- (instancetype)initWithDict:(NSDictionary *)dict

{

self = [super
init];

if (self) {

[self
setValuesForKeysWithDictionary:dict];

}

return
self;

}

步骤二:用一个数组将模型保存起来。

+ (NSArray *)cities

{

NSArray *arrayC = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"cities.plist"
ofType:nil]];

NSMutableArray *arrayM = [NSMutableArray array];

for (NSDictionary *dict

in arrayC) {

SUNCityInfo *cityInfo = [self
cityWithDict:dict];

[arrayM addObject:cityInfo];

}

return arrayM;

}

- (NSString *)description

{

return [NSString stringWithFormat:@"<%@,%p>{name:%@,cities:%@}",self.class,self,self.name,self.cities];

}

步骤三:手动代码创建UIPickerView,实现它的数据源和代理方法。

#pragma mark -
数据源

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

{

return
2;

}

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

{

if (component ==
0) {

return
self.cities.count;

}else{

int index = [self.picker selectedRowInComponent:0];

SUNCityInfo *cityInfo =
self.cities[index];

return cityInfo.cities.count;

}

}

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

{

if (component ==
0) {

SUNCityInfo *cityInfo =
self.cities[row];

return cityInfo.name;

}else{

int index = [self.picker selectedRowInComponent:0];

SUNCityInfo *cityInfo =
self.cities[index];

return cityInfo.cities[row];

}

}

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

{

if (component ==
0) {

[pickerView reloadComponent:1];

[pickerView selectRow:0
inComponent:1
animated:YES];

}

//
获得选中的省份名称

int index = [self.picker selectedRowInComponent:0];

SUNCityInfo *cityInfo =
self.cities[index];

int cIndex = [self.picker selectedRowInComponent:1];

self.cityLabel.text = [NSString stringWithFormat:@"%@ %@",cityInfo.name,cityInfo.cities[cIndex]]
;

}

时间: 2024-10-06 17:00:56

城市选择功能实现的相关文章

Android实战简易教程-第六十枪(分享一个城市选择功能模块)

在做一些APP的时候可能会用到城市选择模块的功能,本实例可以提供位置自定定位和手动选择的功能,非常好用,大家可以修改后加入自己的项目中. 首先看一下效果: 1.进入有的手机可能会提示权限要求,这时我们选择允许. 2.选择允许后进入: 这个位置可以看到我们的城市已经通过GPS获取到了 点击这个控件,城市获取完成了: 下面我们看一下关键代码如何实现这个功能效果. 1.MainActivity.java: package com.winxiang.locationselect; import andr

微信小程序源码下载(200多个)

微信小程序源码下载汇总,点击标题进入对应的微信小程序下载页面. 最新 demo源码(点击标题进入帖子下载) 描述 1 微信小程序 会议室预定小程序 微信小程序 会议室预定小程序**** 本内容被作者隐藏 **** 2 微信小程序-双人五子棋小游戏 微信小程序-双人五子棋小游戏**** 本内容被作者隐藏 **** 3 打卡签到小程序 用微信小程序实现的一个简单的打卡签到的小程序拒绝 4 微信小程序---左滑删除 微信小程序---左滑删除**** 本内容被作者隐藏 **** 5 一个借钱的记事本的微

城市计算,大数据的用武之地!

上图:反映北京出租车轨迹数据分布的热度图,微软亚洲研究院供图 近年来,城市计算(Urban Computing)逐渐走入公众视野,并且越来越受到社会关注.这是一个以计算机科学为基础.涉及了多项其他技术的新兴交叉领域,其中以智能交通这项典型应用最广为人知.事实上,城市计算的相关技术还可以应用到城市规划.环境污染监测.车辆能源消耗.城市安全和紧急事件响应等方面.美国<麻省理工技术评论>杂志(MIT Technology Review,简称TR)本年度的"TR35"评选也对城市计

微信实现定位城市并获取城市编码

最近在做一个项目是将用户的当前所在市县定位出来并展示在手机端页面,同时还要获取到该市县的城市编码从而进行数据过滤,这里重点讲定位城市及获取城市编码 前端页面代码: 首先引用腾讯地图的一个js <script type="text/javascript" src="https://3gimg.qq.com/lightmap/components/geolocation/geolocation.min.js" ></script> 同时在页面加载

一座熟悉而陌生的城市--一个程序员的成长史(7)

回到重庆,已经是两天以后了.代是雄的老家在农村,但他并没有急着回去,而是先到一个亲戚家住下,借此机会来重新看看重庆这张"熟悉而陌生"的面孔. 代是雄是土生土长的重庆人,但老家在农村,在上高中之前的大部分时光都是在他们那个小镇上度过的,自己的足迹也几乎仅限于以他家老房子为中心的方圆10公里以内.在他的印象中,在初中三年时间里,他到过两次县城,那是去参加所谓的初中数学竞赛.他当时只是觉得县城与小镇比起来,要漂亮很多.他印象最深的就是在县城里面吃了一碗凉粉,那个味道真的是好极了,似乎自己之前

城市列表-根据拼音首字母排序

今天我们就简单的实现一下城市的排序 读取我们城市的信息并通过listview展示 首先看一下我们的布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layo

在QQ里面LocList.xml抽取出来的国外国家城市数据

项目要用到国外的国家城市数据,遍地找寻不到,然后搜了搜QQ里面意外发现了LocList.xml这个东西..所以写个脚本提取成了SQL..具体LocList.xml文件大家去搜你们的QQ安装目录就有了.. 这里提供我提取出来的SQL 首先是表结构设计 其中标识id 不要设为自增 pid为直属上级id pids为所有上级id 格式是字符串 以逗号为分隔符(如无上级 则该ID为自己的ID) name为国家或城市的名称 cname别名为国家或城市代码 child是否有下级1为有 0为没有 childid

参观城市(dfs,改编spfs)

问题 F: 参观城市 时间限制: 1 Sec  内存限制: 128 MB 提交: 34  解决: 19 [提交][状态][讨论版] 题目描述 有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,小明在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设你不走重复的路). 输入 第一行输入一个整数M表示测试数据共有M(1<=M<=5)组 每组测试数据的第一行输入一个正整数N(1<=N<=100000)和一个正整数S(1&

php实现城市切换

<?php /* */ //??è?ip /*include_once('./qqwry.php'); $QQWry=new QQWry;  function get_real_ip(){ $ip=false; if(!empty($_SERVER["HTTP_CLIENT_IP"])){ $ip = $_SERVER["HTTP_CLIENT_IP"]; } if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $i