zoukankan      html  css  js  c++  java
  • iOS控件-3级城市列表-plist版

    plist部分:

    调用部分:

    - (void)textFieldDidBeginEditing:(UITextField *)textField {
    WJCityPikerView *piker = [[WJCityPikerView alloc]initWithModelBlock:^(WJPikerDataModel *model) {
    NSLog(@"%@ %@ %@ %@ %@ %@",model.provinceName,model.cityName,model.disName,model.provinceId,model.cityId,model.disId);
    [self.view endEditing:YES];
    } backBlock:^{
    NSLog(@"返回");
    [self.view endEditing:YES];
    }];
    textField.inputView = piker;
    }

    内部:

    1.取出plist中的信息

    //总数据
    - (NSArray *)dataArray {
    if (!_dataArray) {
    NSBundle *bundle = [NSBundle mainBundle];
    NSString *plistPath = [bundle pathForResource:@"city" ofType:@"plist"];
    _dataArray = [[NSArray  alloc]initWithContentsOfFile:plistPath];
    }
    return _dataArray;
    }

    2.创建省,市,区三个数组分别装查找到的省市区的信息

    @property (nonatomic,strong)NSMutableArray *provenceArray;
    @property (nonatomic,strong)NSMutableArray *cityArray;
    @property (nonatomic,strong)NSMutableArray *areaArray;

    3.滚动滚轮在数组里面查找省市区的信息并将他们添加到相应的数组中

    - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
    switch (component) {
    case 0:
    {
    WJCityPlist *plist2 = self.provenceArray[row];
    self.cityArray = [[NSMutableArray alloc]init];
    [self.dataArray enumerateObjectsUsingBlock:^(NSDictionary *dic, NSUInteger idx, BOOL * _Nonnull stop) {
    if ([dic[@"pid"]integerValue] == [plist2.Id integerValue]) {
    WJCityPlist *plist = [[WJCityPlist alloc]initWithDic:dic];
    [self.cityArray addObject:plist];
    }
    }];
    WJCityPlist *plist3 = self.cityArray[0];
    self.areaArray = [[NSMutableArray alloc]init];
    [self.dataArray enumerateObjectsUsingBlock:^(NSDictionary *dic, NSUInteger idx, BOOL * _Nonnull stop) {
    if ([dic[@"pid"]integerValue] == [plist3.Id integerValue]) {
    WJCityPlist *plist = [[WJCityPlist alloc]initWithDic:dic];
    [self.areaArray addObject:plist];
    }
    }];
    [_piker selectRow:0 inComponent:1 animated:NO];
    [_piker reloadAllComponents];
    [_piker reloadComponent:1];
    [_piker reloadComponent:2];
    _indexprovence = row;
    break;
    }
    case 1:
    {
    WJCityPlist *plist3 = self.cityArray[row];
    self.areaArray = [[NSMutableArray alloc]init];
    [self.dataArray enumerateObjectsUsingBlock:^(NSDictionary *dic, NSUInteger idx, BOOL * _Nonnull stop) {
    if ([dic[@"pid"]integerValue] == [plist3.Id integerValue]) {
    WJCityPlist *plist = [[WJCityPlist alloc]initWithDic:dic];
    [self.areaArray addObject:plist];
    }
    }];
    [_piker selectRow:0 inComponent:2 animated:NO];
    [_piker reloadComponent:2];
    _indexcity = row;
    }
    break;
    case 2:
    _indexaera = row;
    break;
    default:
    break;
    }
    NSLog(@"%ld %ld %ld",_indexprovence,_indexcity,_indexaera);
    }

    效果图:


  • 相关阅读:
    Ubuntu 14.04上架IPSec+L2TP的方法
    Windows Server 2008 R2 FTP无法从外部访问的解决方法
    在Windows Server 2008 R2上打开ping的方法
    全站导航
    拉勾网招聘信息分析
    pandas之DataFrame
    pandas之Series
    matplolib学习
    numpy学习
    scrapy框架【爬虫的暂停和启动】
  • 原文地址:https://www.cnblogs.com/hxwj/p/4974742.html
Copyright © 2011-2022 走看看