Question

J'utilise UISwitch dans iOS 3 pour faire un élément de commutation dans mon application. Il a la couleur par défaut à bleu, mais je veux changer sa couleur brune.

Comment puis-je choisir une couleur différente pour l'élément UISwitch dans iOS 3?

Comment puis-je choisir une couleur différente pour l'élément UISwitch dans une application iOS moderne (iOS 5 +)?

Était-ce utile?

La solution

Pour une version moderne iOS XX ignorer la réponse qu'il a zéro pertinence ces derniers temps. Encore ici? Dans iOS 3. Vous ne pouvez pas. Mais vous savez ... les gens atterrissent ici à cause de rang et commentaires contenant d'autres versions et d'autres choses alors ...

La cinquième version iOS permet maintenant d'une manière documentée de le faire: avec la onTintColor propriété

.
UISwitch *s = [[UISwitch alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
s.on = YES;
s.onTintColor = [UIColor redColor];
[self.view addSubview:s];
[s release];

produire ce

Il est une chose qui a été demandé qui ressemble une couleur

Edit:. Je ne sais pas pourquoi quelqu'un viendrait à travers et faire reculer la réponse à la limiter à la seule question sans faire la même chose pour toutes les réponses

Modifier plus: Dans iOS 3, vous deviez utiliser une fonctionnalité non documentée. Il y avait un lien sur cette mais il a cassé. Et si vous avez fait que votre application pourrait se rejetée en raison de changer la couleur.

Il commence avec ce genre de, qui devrait être suffisant pour vous de trouver un autre endroit:

UISwitch *aSwitch = [[UISwitch alloc] initWithFrame:someRectangle];
[aSwitch setAlternateColors:YES];
//Do something with aSwitch
[aSwitch release];

Je ne peux pas le recommander. Et cela se révèle impopulaire.

Autres conseils

Enfin, avec iOS 5, vous pouvez changer la couleur du commutateur avec le onTintColor de la propriété.

UISwitch *s = [[UISwitch alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
s.on = YES;
s.onTintColor = [UIColor redColor];
[self.view addSubview:s];
[s release];

produit ceci:

Entrer image description ici

Pour un changement global pour tous les éléments UISwitch Swift 3, utilisez le proxy apparence:

UISwitch.appearance().onTintColor = UIColor.brown

selon la méthode de application:didFinishLaunchingWithOptions: de AppDelegate.

sont actuellement limités à des valeurs de texte On / Off ou 0/1 pour un UISwitch. Vous pouvez personnaliser la couleur en utilisant la teinte. Pour une personnalisation plus poussée, je suggère quelque chose comme ce qui a été affiché ci-dessus va avec une solution complètement personnalisée

ex. [mySwitch setOnTintColor:[UIColor colorWithRed:0 green:175.0/255.0 blue:176.0/255.0 alpha:1.0]];

source: http://www.raywenderlich.com/ 4344 / interface utilisateur-personnalisation-in-ios-5

EDIT: Pour iOS3, vous êtes limité à un implimentation personnalisé, je suggère deux boutons avec permutation des images personnalisées. Dans les versions ultérieures iOS vous donne beaucoup plus de contrôle et construit dans les options de personnalisation.

Jetez un oeil à la commande UISwitch sur mesure que je me construit permet de changer la couleur du contrôle de fond. Vous pouvez utiliser la même méthode pour modifier le texte, la police ou la couleur du texte très facilement.

http://www.homick.com/posts/custom-uiswitch-control

Le code est disponible sur GitHub et comprend un PSD qui est utilisé pour construire trois fichiers PNG différents que les utilisations de contrôle. Vous pouvez modifier le contenu de la dsp pour recréer les fichiers PNG dans le format que vous aimez. Échanger ceux dans le contrôle et le tour est joué.

Cela donne beaucoup plus d'options que simplement orange et bleu.

Pour Swift 3:

var mySwitch : UISwitch = ...
mySwitch.onTintColor = UIColor.blue
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top