Comment préparer UIPickerView avec les mois et les années à ios?

Je suis en train de travailler sur la Préparation de UIPickerView avec le mois et l'année dans iOS.

Ci-dessous mon code.

dans viewdidload :

//Array for picker view
monthsArray=[[NSMutableArray alloc]initWithObjects:@"Jan",@"Feb",@"Mar",@"Apr",@"May",@"Jun",@"Jul",@"Aug",@"Sep",@"Oct",@"Nov",@"Dec",nil];


NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy"];
NSString *yearString = [formatter stringFromDate:[NSDate date]];


yearsArray=[[NSMutableArray alloc]init];


for (int i=0; i<13; i++)
{
    [yearsArray addObject:[NSString stringWithFormat:@"%d",[yearString intValue]+i]];
}

myPickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 200, 320, 200)];
myPickerView.delegate = self;
myPickerView.showsSelectionIndicator = YES;
[myPickerView selectRow:0 inComponent:0 animated:YES];
[self.view addSubview:myPickerView];

Vue de sélecteur de délégué méthodes:

//tell the picker how many components it will have
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 2;
}

//tell the picker how many rows are available for a given component
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
NSInteger rowsInComponent;
if (component==0)
{
    rowsInComponent=[monthsArray count];
}
else
{
    rowsInComponent=[yearsArray count];
}
return rowsInComponent;
}



- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{

NSString * nameInRow;
if (component==0)
{
    nameInRow=[monthsArray objectAtIndex:row];
}
else  if (component==1)
{
    nameInRow=[yearsArray objectAtIndex:row];
}

return nameInRow;
}


//tell the picker the width of each row for a given component
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component
{
CGFloat componentWidth ;

if (component==0)
{
    componentWidth = 100;
}
else  {
    componentWidth = 100;
}

return componentWidth;
}

Et j'ai obtenu le résultat suivant :

Comment préparer UIPickerView avec les mois et les années à ios?

Mais dans le courant de l'année , les mois de janvier à octobre ont expiré. Comment faire pour désactiver ces années dans mon sélecteur seulement pour l'année en cours, de façon dynamique. Ces mois, elle devrait être disponible pour les autres années.

En fait la sortie réelle est,

Comment préparer UIPickerView avec les mois et les années à ios?

Ci-dessus, à l'expiration de mois dans l'année en cours doit être désactivé dans l'INTERFACE utilisateur.

Des commentaires ou des suggestions seraient appréciées.

Vous en remercie d'avance.

OriginalL'auteur Ashok Kumar S | 2013-11-20