首页 > 代码库 > 自定义的地址选择器(UIPickView)。功能是:选择省后,其下的城市都会出现。

自定义的地址选择器(UIPickView)。功能是:选择省后,其下的城市都会出现。

技术分享

自定义的地区选择器

序言:

       现在,许多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

自定义的地址选择器(UIPickView)。功能是:选择省后,其下的城市都会出现。