ios pickerview选择城市

//
//  ViewController.m
//  02-城市选中
//
//  Created by panba on 16-4-12.
//  Copyright (c) 2016年 panba. All rights reserved.
//

#import "ViewController.h"
#import "JCCities.h"

@interface ViewController ()<UIPickerViewDataSource,UIPickerViewDelegate>
@property(nonatomic,strong) NSArray *cities;
@property(nonatomic,strong) UIPickerView *pickerView;
@end

@implementation ViewController
//0-viewdidload
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    //1-添加一个pickerview
    UIPickerView *pickerView = [[UIPickerView alloc]init];
    //pickerView.frame = CGRectMake(0, 80, 320, 400);
    pickerView.dataSource = self;
    pickerView.delegate = self;
    self.pickerView = pickerView;
    [self.view addSubview:pickerView];
}
//1-懒加载
-(NSArray *)cities
{
    if (_cities ==nil) {
        //1-找到路径
        NSString *fullPath = [[NSBundle mainBundle]pathForResource:@"cities.plist" ofType:nil];
        //2-加载数据
        NSArray *array = [NSArray arrayWithContentsOfFile:fullPath];
        NSMutableArray *model = [[NSMutableArray alloc]initWithCapacity:array.count];
        for (NSDictionary *dict in array) {
            JCCities *city = [JCCities citiesWithDict:dict];
            [model addObject:city];
        }
        _cities = [model copy];
    }
    return _cities;
}
//2-返回pickerview的行数
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 2;
}
//2.1返回每一组的行数
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    if (component == 0) {
        return self.cities.count;
    }else
    {
        //1-获得到第0列选中第是第几行
        NSInteger index = [self.pickerView selectedRowInComponent:0];
        //2-然后得到这一个数组中城市第数组cities
        JCCities *city = self.cities[index];
        NSArray *cities = city.cities;
        //3-返回城市数组第count
        return cities.count;
    }
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    if (component ==0) {
        //NSInteger index = [self.pickerView selectedRowInComponent:0];
        JCCities *cities = self.cities[row];
        return cities.name;
    }else
    {
        //1-获得第0行的被选中的行数
        NSInteger index = [self.pickerView selectedRowInComponent:0];
        //2-得到这一个数组中的cities数组
        JCCities *city = self.cities[index];
        NSArray *cities = city.cities;
        //3-返回这一个数组中的城市名称
        NSString *citiName = cities[row];
        return citiName;
    }
}
//监听pickview的选中操作
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    if (0==component) {
        [self.pickerView reloadComponent:1];
        //让第1列自动滚到第0行
        [self.pickerView selectRow:0 inComponent:1 animated:YES];
    }
}

@end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Y型树杈子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值