一、案例介绍:点击UIButton,将选中的省市信息显示在UILabel中,如图01,02
图01图02
二、案例步骤:
1、选择Simple View Aplication,取名cq.37.普通选择器,如图03
图03
2、Main.storyboard,如图04
3、provinces_cities.plist
4、CQ37ViewController.h
#import <UIKit/UIKit.h>@interface CQ37ViewController : UIViewController<UIPickerViewDataSource,UIPickerViewDelegate>
@property (weak,nonatomic) IBOutlet UIPickerView *pickerView;
@property (weak,nonatomic) IBOutlet UILabel *label;
@property (strong,nonatomic) NSDictionary *pickerData;
@property (strong,nonatomic) NSArray *pickerProvincesData;
@property (strong,nonatomic) NSArray *pickerCitiesData;- (IBAction)onclick:(id)sender;
@end
5、CQ37ViewController.m
#import "CQ37ViewController.h"@interface CQ37ViewController ()
@end
@implementation CQ37ViewController
- (void)viewDidLoad
{
[super viewDidLoad];NSBundle *mainBundle = [NSBundle mainBundle];
NSString *plistPath = [mainBundle pathForResource:@"provinces_cities" ofType:@"plist"];NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
self.pickerData = dict;self.pickerProvincesData = [dict allKeys];
NSString *selectedProvince = [self.pickerProvincesData objectAtIndex:0];
self.pickerCitiesData = [self.pickerData objectForKey:selectedProvince];self.pickerView.delegate = self;
self.pickerView.dataSource = self;
}- (IBAction)onclick:(id)sender
{
NSInteger row1 = [self.pickerView selectedRowInComponent:0];
NSInteger row2 = [self.pickerView selectedRowInComponent:1];NSString *selected1 = [self.pickerProvincesData objectAtIndex:row1];
NSString *selected2 = [self.pickerCitiesData objectAtIndex:row2];NSString *title = [[NSString alloc] initWithFormat:@"%@,%@",selected1,selected2];
self.label.text = title;
}
#pragma mark UIPickerViewDataSource method
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 2;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
if (component == 0) {
return [self.pickerProvincesData count];
}else{
return [self.pickerCitiesData count];
}
}
#pragma mark 实现协议UIPickerViewDelegate方法
-(NSString *)pickerView:(UIPickerView *)pickerView
titleForRow:(NSInteger)row forComponent:(NSInteger)component {
if (component == 0) {//选择省份名
return [self.pickerProvincesData objectAtIndex:row];
} else {//选择市名
return [self.pickerCitiesData objectAtIndex:row];
}
}- (void)pickerView:(UIPickerView *)pickerView
didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
if (component == 0) {
NSString *seletedProvince = [self.pickerProvincesData objectAtIndex:row];
NSArray *array = [self.pickerData objectForKey:seletedProvince];
self.pickerCitiesData = array;
[self.pickerView reloadComponent:1];
}
}
@end
iOS.UIKit.11.UIPickerView,布布扣,bubuko.com