Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UIDatePicker to show year only

Is there a way to have a UIDatePicker show year only?

like image 715
Jay Avatar asked Aug 18 '12 10:08

Jay


1 Answers

I have a little code that I was about to delete, but the snippet is better off if it is online somewhere. It's not amazing, but it is searchable!

Objective-C code to create an array of all years since 1960. Perfect for input into a UIPicker

//Get Current Year into i2
NSDateFormatter* formatter = [[[NSDateFormatter alloc] init]autorelease];
[formatter setDateFormat:@"yyyy"];
int i2  = [[formatter stringFromDate:[NSDate date]] intValue];


//Create Years Array from 1960 to This year
years = [[NSMutableArray alloc] init];
for (int i=1960; i<=i2; i++) {
    [years addObject:[NSString stringWithFormat:@"%d",i]];
}

The UIPickerView data source and delegate methods:

- (NSInteger)numberOfComponentsInPickerView: (UIPickerView*)thePickerView {
    return 1;
}

- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component
{
    return [years count];
}
- (NSString *)pickerView:(UIPickerView *)thePickerView
titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    return [years objectAtIndex:row];
}

Don't forget the declaration in the interface

//Data
NSMutableArray *years;

The out put of it is

enter image description here

Referenced from here

like image 134
The iOSDev Avatar answered Oct 18 '22 09:10

The iOSDev