UIPickerView自定义日期

问题描述:

我无法使用UIDatePicker。在所有评论者告诉我只使用UIDatePicker之前,我只想在开始时抛出它。我想要一个Picker Wheel来显示今年的所有今年的日子,并将其显示为日期:1/1月1日,日:2/1月2日等等。这里是我到目前为止,检测的一年它是什么日子“数字”,并填充捡拾器与所有的日期领先到今天:UIPickerView自定义日期

NSCalendar *currentCalendar = [NSCalendar currentCalendar]; 
    NSDate *today = [NSDate date]; 

    NSInteger dc = [currentCalendar ordinalityOfUnit:NSDayCalendarUnit 
               inUnit:NSYearCalendarUnit 
               forDate:today]; 
    options = [[NSMutableArray alloc]init]; 

    for (int index = 1; index <= dc; index++) 
    { 
     NSString *pickerItemTitle = [NSString stringWithFormat: @"Day: %d", index]; 
     [options addObject: pickerItemTitle]; 
    } 

有什么事,使之也匹配将NSInteger与日期相提并论,它们也是pickerItemTitle的一部分吗?

想通了。添加了一些代码,以基于整天的整数形成日期到循环中。现在,设置uipickerview数组的viewWillAppear方法如下所示:

- (void)viewWillAppear:(BOOL)animated 
{ 

    NSCalendar *currentCalendar = [NSCalendar currentCalendar]; 
    NSDate *today = [NSDate date]; 

    NSInteger dc = [currentCalendar ordinalityOfUnit:NSDayCalendarUnit 
               inUnit:NSYearCalendarUnit 
               forDate:today]; 
    options = [[NSMutableArray alloc]init]; 

    for (int index = 1; index <= dc; index++) 
    { 
     NSDateComponents *components = [[NSDateComponents alloc] init]; 
     [components setDay:index]; 
     NSCalendar *gregorian = [[NSCalendar alloc] 
           initWithCalendarIdentifier:NSGregorianCalendar]; 
     NSDate *date = [gregorian dateFromComponents:components]; 
     NSDateFormatter *formatter = [[NSDateFormatter alloc]init]; 
     [formatter setDateFormat:@"MMM dd"]; 
     NSString *articleDateString = [formatter stringFromDate:date]; 
     NSString *pickerItemTitle = [NSString stringWithFormat: @"Day: %d/%@", index, articleDateString]; 
     [options addObject: pickerItemTitle]; 
    } 
    [super viewWillAppear:YES]; 
}