Objective-C - 带有自定义值的UIDatePicker

时间:2012-02-01 13:25:44

标签: objective-c cocoa-touch customization uipickerview uidatepicker

理想情况下,我想使用UIDatePicker来显示日期。但是,我希望它显示一个自定义值,例如Feb 2,而不是显示特定日期(对于最左边的组件)Peter's birthday

使用UIDatePicker有没有办法实现这一目标?或者我是否必须创建UIPickerView并使用日期和自定义值的数据源来提供它?

如果是这样,我将如何用日期(我的dataSource会是什么样子)来提供它?

1 个答案:

答案 0 :(得分:0)

UIDatePicker只允许您选择日期,时间,日期+时间等预定义样式中的日期...,因此您必须使用UIPickerView。

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 3;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    switch (component)
    {
        case 0: return self.birthdays.count;
        case 1: return 24;
        case 2: return 60;
        default: return -1;
    }
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    switch (component)
    {
        case 0: return [[self.birthdays objectAtIndex:row] title];
        case 1: return [NSString stringWithFormat:@"%d", row];
        case 2: return [NSString stringWithFormat:@"%d", row];
        default: return nil;
    }
}