UIPickerView

来源:互联网 发布:dlp数据防泄密 编辑:程序博客网 时间:2024/05/16 02:45
////  ViewController.m//  MyPickerView////  Created by sunlihuo on 15/5/18.//  Copyright (c) 2015年 sunlihuo. All rights reserved.//#import "ViewController.h"@interface ViewController ()@property (strong, nonatomic) UIPickerView *pickerView;//选取器视图//@property (strong, nonatomic) NSArray *listData;//选取器的数据源@property (strong, nonatomic) NSArray *provinces;//省份数据源数组@property (strong, nonatomic) NSArray *cities;//城市数据源数组@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    //self.listData = @[@"row1", @"row2", @"row3", @"row4", @"row5"];    [self onCreate];}- (void)onCreate{    NSString *filePath = [[NSBundle mainBundle]pathForResource:@"area" ofType:@"plist"];    self.provinces = [[NSArray alloc]initWithContentsOfFile:filePath];    self.cities = self.provinces[0][@"Cities"];    //NSLog(@"provinces is %@", self.provinces);    //NSLog(@"cities is %@", self.cities);        self.pickerView = [[UIPickerView alloc]initWithFrame:CGRectMake(0, 318, 320, 162)];    self.pickerView.dataSource = self;    self.pickerView.delegate = self;    [self.view addSubview:self.pickerView];        }- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];}#pragma mark 选取器视图的数据类方法- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{    //此数据源方法指定选取器有几个表盘    return 2;}#pragma mark 选取器视图的委托方法- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{    //此数据源方法指定选取器每个表盘有几行数据    //NSLog(@"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ is %zi", component);    NSInteger cou = 0;    switch (component) {        case 0:            cou = self.provinces.count;            break;        case 1:            cou = self.cities.count;            break;        default:            break;    }    return cou;}#pragma mark 此数据源方法指定选取器如何展示数据(此方法会被调用多次)- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{    NSString *str = nil;    switch (component) {        case 0:            str =  self.provinces[row][@"State"];            break;        case 1:            str = self.cities[row][@"city"];            break;        default:            break;    }            return str;    }-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{    switch (component) {        case 0:            self.cities = self.provinces[row][@"Cities"];            //刷新UI            [pickerView selectRow:0 inComponent:1 animated:YES];            [pickerView reloadComponent:1];            break;                    default:            break;    }        }@end

0 0
原创粉丝点击