iOS選擇器-UIDatePicker和UIPickerView

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容