En Objective-C, nous utilisons ce code pour définir des codes de couleur RVB pour les vues:
#define UIColorFromRGB(rgbValue)
[UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
view.backgroundColor=UIColorFromRGB(0x209624);
Comment puis-je utiliser cela dans Swift?
Réponses:
Voici une version Swift de cette fonction (pour obtenir une représentation UIColor d'une
UInt
valeur):la source
Je voulais mettre
mais cela n'a pas fonctionné.
J'ai donc utilisé:
Pour Swift
C'est donc la solution de contournement que j'ai trouvée.
la source
J'ai beaucoup aimé la réponse de Nate Cook mais je voulais quelque chose d'un peu plus idiomatique. Je pense que c'est un très bon cas d'utilisation pour un initialiseur pratique via une extension personnalisée.
Cela peut maintenant être utilisé comme ceci:
Je ne recommanderais que monkey patcher les classes UIKit comme celle-ci dans votre propre code client, pas dans les bibliothèques.
la source
0x
suivi par n'importe quelle couleur hexadécimale - color-hex.comla source
Le moyen le plus simple d'ajouter de la couleur par programme consiste à utiliser ColorLiteral .
Ajoutez simplement la propriété ColorLiteral comme indiqué dans l'exemple, Xcode vous proposera une liste complète de couleurs que vous pouvez choisir. L'avantage de le faire est un code moindre, ajouter des valeurs HEX ou RVB . Vous obtiendrez également les couleurs récemment utilisées du storyboard.
Exemple: self.view.backgroundColor = ColorLiteral
la source
Si vous partez d'une chaîne (non hexadécimale), il s'agit d'une fonction qui prend une chaîne hexadécimale et renvoie un UIColor.
(Vous pouvez saisir des chaînes hexadécimales au format:
#ffffff
ouffffff
)Usage:
Swift 4:
Swift 3:
Swift 2:
Source: arshad / gist: de147c42d7b3063ef7bc
la source
Pour Xcode 9 , utilisez
UIColor
avec des valeurs RVB.Aperçu:
Consultez la documentation Apple supplémentaire sur UIColor .
la source
UIColorFromRGB dans Swift 4
la source
J'ai utilisé ce qui suit dans Swift.
la source
solution pour le format argb:
usage:
la source
Cela a fonctionné pour moi rapidement. Essaye ça
la source
ajout d'une option swift 3:
la source
Vous ne pouvez pas utiliser de macros complexes comme
#define UIColorFromRGB(rgbValue)
dans Swift. Le remplacement de la macro simple dans swift est des constantes globales commeCependant, les macros complexes qui acceptent les paramètres ne sont pas prises en charge par swift. vous pouvez utiliser des fonctions à la place
Extrait de l' utilisation de Swift avec du cacao et de l'objectif C
Vérifiez la réponse @Nate Cooks pour la version Swift de cette fonction à utiliser ici
la source
Vous pouvez utiliser ceci:
la source
La réponse de Nate Cook est absolument correcte. Juste pour plus de flexibilité, je garde les fonctions suivantes dans mon pack:
Et voici comment je les utilise:
J'espère que cela aidera. Tout est testé avec Swift 3 / Xcode 8.
la source
C'est une belle extension pour UIColor. Vous pouvez utiliser des valeurs d'énumération (hexadécimal, chaîne) et des valeurs de chaîne directes lorsque vous créez des objets UIColor.
L'extension que nous méritons https://github.com/ioramashvili/UsefulExtensions/blob/master/Extensions.playground/Pages/UIColor.xcplaygroundpage/Contents.swift
la source
Je peux voir que cela a déjà été répondu, mais j'espère toujours qu'une doublure aidera mieux.
Mise à jour:: Modifications effectuées selon l'exemple expliqué par l'auteur de la question pour fournir des valeurs hexadécimales
la source
Dans Swift3, si vous commencez avec une couleur que vous avez déjà choisie, vous pouvez obtenir la valeur RVB en ligne ( http://imagecolorpicker.com ) et utiliser ces valeurs définies comme UIColor. Cette solution les implémente en arrière-plan:
@Vadym l'a mentionné ci-dessus dans les commentaires et il est important de définir le CGFloat avec un seul point décimal
la source
la source
Cela peut être fait simplement en utilisant cette initialisation
la source