Je n'arrive pas à trouver le code d'instruction if pour modifier la couleur d'une étiquette d'interface utilisateur en fonction de la couleur actuelle de l'étiquette. Par exemple, si la couleur de l'étiquette est actuellement rouge et que le bouton correct est enfoncé, je souhaite que la couleur de l'étiquette devienne noire. Si la couleur de l'étiquette est noire, je souhaite que la couleur de l'étiquette devienne bleue.Modification de la couleur de l'étiquette en fonction de la couleur de l'étiquette dans l'iPhone dev
Modification de la couleur de l'étiquette en fonction de la couleur de l'étiquette dans l'iPhone dev
Répondre
En théorie, vous pouvez utiliser un conditionnel comme if ([label.backgroundColor isEqual:[UIColor blackColor]) { ... }
, mais vous devez faire attention car deux couleurs qui semblent identiques ne passent pas nécessairement isEqual:
. (par exemple, si l'un est en niveaux de gris et l'autre en RGB 24 bits). L'exécution d'une logique conditionnelle basée sur les attributs visuels de votre vue semble être une décision de conception que vous souhaiterez peut-être reconsidérer de toute façon. Vous rendez plus difficile la modification de votre conception visuelle dans le futur (par exemple, pour utiliser des couleurs différentes) sans introduire de bogues dans la logique de votre application. Le modèle Model View Controller nous encourage à découpler l'état de notre modèle, la logique qui le modifie et les vues qui le représentent visuellement. Lorsque votre étiquette passe entre trois couleurs, la couleur représente vraisemblablement un état logique sous-jacent qui passe entre trois valeurs possibles. Un meilleur choix serait de faire circuler cet état dans votre modèle sous-jacent, et de laisser la couleur de l'étiquette refléter cet état.
Par exemple, supposons que la couleur de votre étiquette représente une sélection d'armes dans une roche, papier, ciseaux jeu:
// .h
typedef enum WeaponState {
WeaponStateRock,
WeaponStateScissors,
WeaponStatePaper
} WeaponState;
// .m
- (IBAction)weaponSelectorButtonClicked {
if (weaponState == WeaponStateRock) {
weaponState = WeaponStateScissors;
}
else if (weaponState == WeaponStateScissors) {
weaponState = WeaponStatePaper;
}
else {
weaponState = WeaponStateRock;
}
[self refreshView];
}
- (void)refreshView {
if (weaponState == WeaponStateRock) {
self.label.backgroundColor = [UIColor redColor];
}
else if (weaponState == WeaponStateScissors) {
self.label.backgroundColor = [UIColor blackColor];
}
else {
self.label.backgroundColor = [UIColor blueColor];
}
}
- 1. Modification de la couleur du lien en fonction de la fonction de feuille de style
- 2. MFC: Modification de la couleur de CEdit
- 3. Modification de la couleur de fond d'UltraCalenderCombo
- 4. Modification de la couleur de la ligne active dans Dreamweaver
- 5. C#: modification de la couleur de la ligne de liste?
- 6. Modification de la couleur de sélection de texte dans NSTextView
- 7. Matplotlib: Modification de la couleur d'un axe
- 8. Modification de la couleur de la peau par programme
- 9. Modification de la couleur par défaut de UIWebView en UIImage
- 10. Modification de la couleur de la bordure de l'onglet Widget
- 11. Modification de la couleur des vues d'alerte
- 12. Modification de la couleur des en-têtes de section UITableView
- 13. Modification de la couleur de l'interface utilisateur dans Eclipse
- 14. Modification de la couleur d'arrière-plan de la fenêtre
- 15. Modification de la couleur de la barre d'état
- 16. Modification de la couleur du titre de la fenêtre
- 17. Modification de la couleur de référence et de la couleur de fond d'un texte dans une zone de texte
- 18. Modification de la couleur d'arrière-plan d'une étiquette en C#
- 19. Changer la couleur en fonction de la valeur
- 20. Modification de la couleur et activation de la modification de la valeur dans la ligne sélectionnée pour Datagrid en C#
- 21. Modification de la couleur des barres individuelles dans Microsoft.Interop.Graph.Chart .NET?
- 22. Modification de la couleur des éléments déroulants dans TDBLookupComboBox
- 23. Modification de la couleur d'un contrôle d'édition dans WINCE (win32)
- 24. Modification de la couleur du texte dans un calendrier WPF?
- 25. Modification de la couleur d'arrière-plan d'une zone de texte
- 26. Modification de la couleur des boutons de l'interface utilisateur jQuery
- 27. Modification de la couleur du texte dans UINavigationBar
- 28. Modification de la couleur d'arrière-plan dans Google Map InfoWindow
- 29. Choisir automatiquement une bonne couleur de bordure en fonction de la couleur d'arrière-plan
- 30. Modification de la couleur par défaut de DateTimePickers?