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);
    }

    效果图:


  • 相关阅读:
    windy数
    微信授权网页登陆,oauth
    Win7/Win2008下IIS配置Asp网站启用父路径的设置方法(已解决)
    Html5学习笔记1 元素 标签 属性
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'user'
    POJ 3978(求素数)
    java内存模型(Java Memory Model)
    【Unity3D自学记录】Unity3D之自制小钟表
    HDU4126Genghis Khan the Conqueror(最小生成树+并查集)
    gcc学习(一)[第二版]
  • 原文地址:https://www.cnblogs.com/hxwj/p/4974742.html
Copyright © 2011-2022 走看看