自定义的地区选择器
序言:
现在,许多APP里面都有注册界面和地址填写界面还有快递功能。这都会离不开一个很小的功能。那就是地址的选择和填写。
正文:
今天,我们要做一个地址填写的工具出来,很快速的完成,你的地址选择。我们要做的工具的功能是:
当你选择一个省或者市,则其下的城市都会出现。就不用我们在乱找了。
注意:
在此工具的创建时,遇到了一个很大难处。难处就是没有省地区的借口。现在,我已经写了一个,并以JSon的格式上传本博客资源里。
如果需要的朋友欢迎下载。我们为此,还要学会搭建本地服务器。
第一:我们打开终端服务器。步骤如下:
第二步:
在终端里输入
sudo apachectl start
如果有;PassWord :就输入你的登录密码。这个是看不见的。
然后,在输入ifconfig 查出你的IP地址。
第三步:
点击 电脑里的 前往——————》电脑——————》点击你的系统盘————》再点击 资源库————————》点击 webserver 文件夹 ——————》documents文件架下——————》建立一个文件夹(比如 zs)
第四步:
我们要下载一个东西(重要)。下载地址为:http://download.csdn.net/detail/zhoushuangjian511/8336843
第五步:
我们开始今天的重要代码创建。
我们首先添加两个写协议。如下:
<UIPickerViewDataSource,UIPickerViewDelegate>
第六步:
我们要创建四个对象。(其中)。代码:
{ UIPickerView*_ZSJPickView; } @property(nonatomic,strong)NSMutableArray*ShengArr; @property(nonatomic,strong)NSMutableArray*ShengQuArr; @property(nonatomic,strong)NSMutableArray*XianArr;;
第七步:
我们要初始化,这些对象。代码;
_ZSJPickView=[[UIPickerView alloc]initWithFrame:CGRectMake(0, 100, 320, 40)]; _ZSJPickView.delegate=self; _ZSJPickView.dataSource=self; [ImageView addSubview:_ZSJPickView]; UIView*View=[[UIView alloc]initWithFrame:CGRectMake(0, 28, 320, 40)]; View.backgroundColor=[UIColor whiteColor]; [_ZSJPickView addSubview:View];
第七步:
我们数据的下载:代码:
NSString*str=[NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://127.0.0.1/Junchang/ZSJCity.json"] encoding:NSUTF8StringEncoding error:nil]; NSDictionary*dic=[NSJSONSerialization JSONObjectWithData:[str dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:nil]; self.ShengArr=dic[@"cityCode"]; self.ShengQuArr=self.ShengArr[0][@"city"];
第八步:实现我们一定要实现的几个方法,代码:
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{ return 3; } -(NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ if (component==0) { return self.ShengArr[row][@"province"]; }else if (component==1) { return self.ShengQuArr[row][@"cityName"]; }else { return self.XianArr[row]; } } -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ if (component==0) { NSLog(@"%d",self.ShengArr.count); return self.ShengArr.count; }else if (component==1) { return 20; }else{ return self.XianArr.count; } }
第九步:
也是最重要的。如下:
self.ShengQuArr=[NSMutableArray arrayWithCapacity:0]; [self.ShengQuArr addObjectsFromArray:self.ShengArr[0][@"city"]]; [_ZSJPickView reloadComponent:1]; [self pickerView:_ZSJPickView titleForRow:0 forComponent:1];
效果展示:
完整代码下载如下:
http://download.csdn.net/my
时间: 2024-11-08 23:11:07