1.日期選擇器(UIDatePicker)
日期選擇器有四種模式
1.日期---年/月/日
2.日期時間---年/月/日/上下午/時/分
3.時間---上下午/時/分
4.倒計時定時器---時/分

顯示效果
代碼
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIDatePicker *datePicker;
@property (weak, nonatomic) IBOutlet UILabel *label;
- (IBAction)onlick:(UIButton *)sender;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (IBAction)onlick:(UIButton *)sender
{
NSDate *theDate = self.datePicker.date;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"YYYY-MM-dd HH:mm:ss";
self.label.text = [dateFormatter stringFromDate:theDate];
}
@end
2.普通選擇器(UIPickerView)
UIPickerView是UIDatePicker的父類
與UIDatePicker不同的是,UIPickerView需要兩個非常重要的協(xié)議
1.UIPickViewDataSource
2.UIPickViewDelegate

顯示效果
代碼
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.pickerView.dataSource = self;
self.pickerView.delegate = self;
NSBundle *bundle = [NSBundle mainBundle];
NSString *plistPath = [bundle pathForResource:@"provinces_cities" ofType:@"plist"];
//獲取屬性列表文件中的全部數(shù)據(jù)
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
self.pickerData = dict;
//獲取省份名數(shù)據(jù)
self.pickerProvincesData = [self.pickerData allKeys];
//默認(rèn)取出第一個省的所有市的數(shù)據(jù)
NSString *selectedProvince = [self.pickerProvincesData objectAtIndex:0];
self.pickerCitiesData = [self.pickerData objectForKey:selectedProvince];
}
- (IBAction)onclick:(UIButton *)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 stringWithFormat:@"%@,%@市", selected1, selected2];
self.label.text = title;
}
#pragma mark - 實現(xiàn)UIPickViewDataSource方法
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 2;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
if (component == 0) //省份個數(shù)
{
return [self.pickerProvincesData count];
}
else //市的個數(shù)
return [self.pickerCitiesData count];
}
#pragma mark - 實現(xiàn)UIPickViewDelegate方法
- (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 *selectedProvince = [self.pickerProvincesData objectAtIndex:row];
NSArray *array = [self.pickerData objectForKey:selectedProvince];
self.pickerCitiesData = array;
[self.pickerView reloadComponent:1];
}
}
@end