Je veux utiliser mes atouts de couleurs du catalogue des actifs en utilisant des littéraux de couleurs. Dans UIKit
, nous pouvons utiliser directement la couleur littéral, existe-t-il un moyen d'utiliser les littéraux de couleurs à Swiftui
J'ai recherché à partir d'initialiseur couleur avec UIColor
paramètre mais aucun trouvé
Remarque : beta 5 a une initiative pour cela déjà et pas besoin de le mettre en œuvre. Mais si vous utilisez une version antérieure, avec l'aide de certaines extensions pour UIColor
:
extension UIColor {
var rgba: (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) {
var red: CGFloat = 0
var green: CGFloat = 0
var blue: CGFloat = 0
var alpha: CGFloat = 0
getRed(&red, green: &green, blue: &blue, alpha: &alpha)
return (red, green, blue, alpha)
}
}
alors pour Color
:
extension Color {
init(_ uiColor: UIColor) {
self.init(red: Double(uiColor.rgba.red),
green: Double(uiColor.rgba.green),
blue: Double(uiColor.rgba.blue),
opacity: Double(uiColor.rgba.alpha))
}
}
Ensuite, vous pouvez utiliser ColorLiteral comme ceci:
Color(#colorLiteral(red: 1, green: 0, blue: 0, alpha: 1))
ou tout autre uicolor:
Color(.red)
Je trouve utile lorsque vous concevez des mises en page où je dois trouver et ajuster une couleur rapidement pour utiliser cette méthode.
Je fais cela chaque fois que je veux utiliser les littéraux de couleurs de glisser-déposer de style à Swiftui.
Plus tard, je peux revenir en arrière et ajouter la couleur codée dur à ma palette de couleurs simplement en commentant "//" la ligne littérale couleur dans mon code qui révèle le RVB pour ma couleur sélectionnée.
J'espère que cela pourra aider.
Vous pouvez utiliser la méthode GERED () d'Uicolor pour obtenir les composants rouges, verts, bleus et alpha, puis utilisez-les pour créer un objet de couleur. Vous pouvez même créer une extension qui l'a fait pour vous.