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 :
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,
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
Vous devez vous connecter pour publier un commentaire.
Au final, j'ai écrit ma logique pour l'atteindre.
Mais il y a peut-être une meilleure façon de logique pour optimiser la mémoire.
Ci-dessous mon code.
Dans le viewdidload:
Vue de sélecteur de délégué méthodes :
Voici ma sortie
pour l'année 2013:
pour les Autres années:
.
.
.
Merci pour votre contribution.
OriginalL'auteur Ashok Kumar S
si Votre question mentionne
date and year
semblait-il commeUIDatePickerModeDate
suffirait .vous êtes à la recherche pour
month and year
qui n'est pas une option disponible. Je vous suggère de considérer l'utilisation d'un composant deuxUIPickerView
objet.Réponse Originale À Cette Question
Vous pouvez le faire en modifiant le
Mode property
sousDate Picker
à ce Jour dans les Attributs de l'Inspecteur dans la barre de droite ( Cmd + Option + 4 ). Vous pouvez également le faire par programmation,OriginalL'auteur Dhaval Bhadania
Vous pouvez utiliser le UIDatePickerView, et puis vous pouvez spécifier le format qui est en train de montrer à partir de l'IB.
OriginalL'auteur Albara
utilisation UIDatePicker pomme de référence et apple a un très bon exemple de code pour utiliser uidatepicker ainsi DateCell
+1 Merci pour votre contribution.
OriginalL'auteur Suhit Patil
Je vous conseille aussi d'utiliser UIDatePicker à la place. Qui sera une meilleure option.
+1 Merci pour votre contribution.
OriginalL'auteur Javed Iqbal
Si vous n'aimez pas utiliser UIDatepicker, alors vous pouvez essayer ce composant UIComponent (créé par moi) qui affiche seulement le mois et l'année:
MonthSelector
OriginalL'auteur DRK