Comment définir la couleur d'arrière-plan de UIPickerView
sur iOS 7 à l'aide du SDK 7 et utiliser un sélecteur standard sur iOS 5 et 6? Il est transparent par défaut sur iOS 7.
J'ai ajouté UIView
sous UIPickerView
avec le code:
CGRect framePickerView = CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, 216);
pickerView = [[[UIView alloc] initWithFrame:framePickerView] autorelease];
pickerView.backgroundColor = [UIColor whiteColor];
[self.view addSubview:pickerView];
[pickerView addSubview:picker];
à la place, le code:
[self.view addSubview:picker];
Quel est le problème avec:
[picker setBackgroundColor:[UIColor whiteColor]];
Je suppose que vous avez une référence à la vue du sélecteur si vous l'invoquez, et c'est une sous-classe d'UIView donc backgroundColor
est une propriété valide ...
Je voulais l'écrire comme un commentaire, mais ce serait difficile à lire :) Sooo ....
-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 50, 44)]; // your frame, so picker gets "colored"
label.backgroundColor = [UIColor lightGrayColor];
label.textColor = [UIColor blackColor];
label.font = [UIFont fontWithName:@"HelveticaNeue-Bold" size:18];
label.text = [NSString stringWithFormat:@"%d",row];
return label;
}
De plus, il ne doit pas être uniquement une étiquette, je pense que vous pouvez également y insérer d'autres sous-vues ... Cela fonctionne sur iOS7 pour autant que je sache
Cela a fonctionné pour moi, dans iOS 7.1:
[[UIPickerView appearance] setBackgroundColor:[UIColor whiteColor];
Cela change la couleur de tous les cueilleurs. Vous pouvez mettre un conditionnel autour de lui si vous ne voulez que cela s'exécute sur des appareils avec iOS 7.
Même si j'ai défini UIPickerView.backgorundColor
, mais j'avais une couleur de fond bizarre.
suppression la ligne suivante a résolu le problème:
UITextField.keyboardAppearance = .dark
Ou réinitialisez simplement keyboardAppearance
par défaut, comme ceci:
UITextField.keyboardAppearance = .default
Pour toute personne travaillant dans Swift et utilisant potentiellement plusieurs sélecteurs:
pickerView1.backgroundColor = UIColor.darkGrayColor()
pickerView2.backgroundColor = UIColor.greenColor()
Xcode 7.3