0

我不能使用 UIDatePicker。在所有评论者告诉我只使用 UIDatePicker 之前,我只想在一开始就把它扔掉。我想要一个显示一年中所有日子的选择轮,直到今天,并将其显示为 Day: 1/Jan 1, Day: 2/Jan 2 等等。这是我到目前为止所拥有的,它检测它是一年中的哪一天的“数字”,并用直到今天的所有日期填充 PickerWheel:

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 的一部分?

4

1 回答 1

0

想通了。添加了一些代码以在循环中形成基于日期整数的日期。现在,为 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];  
}
于 2013-01-05T20:27:39.000 回答