J'essaie de changer la couleur du texte dans un UITextField en utilisant le code suivant (valeur RGBA) mais il apparaît juste blanc ou clair, je ne suis pas trop sûr car l'arrière-plan est blanc lui-même.
passwordTextField.textColor = UIColor(red: CGFloat(202.0), green: CGFloat(228.0), blue: CGFloat(230.0), alpha: CGFloat(100.0))
passwordTextField.returnKeyType = UIReturnKeyType.Done
passwordTextField.placeholder = "Password"
passwordTextField.backgroundColor = UIColor.clearColor()
passwordTextField.borderStyle = UITextBorderStyle.RoundedRect
passwordTextField.font = UIFont(name: "Avenir Next", size: 14)
passwordTextField.textAlignment = NSTextAlignment.Center
passwordTextField.secureTextEntry = true
Les valeurs RVB pour UIColor sont comprises entre 0 et 1 (voir la documentation "spécifié comme une valeur de 0,0 à 1,0")
Vous devez diviser vos nombres par 255:
passwordTextField.textColor = UIColor(red: CGFloat(202.0/255.0), green: CGFloat(228.0/255.0), blue: CGFloat(230.0/255.0), alpha: CGFloat(1.0))
Une autre chose, vous n'avez pas besoin de créer CGFloats:
passwordTextField.textColor = UIColor(red:202.0/255.0, green:228.0/255.0, blue:230.0/255.0, alpha:1.0)
Utilisation de l'init pratique (code comme un pro)
extension UIColor {
convenience init(r: CGFloat, g: CGFloat, b: CGFloat) {
self.init(red: r/255, green: g/255, blue: b/255, alpha: 1)
}
}
//let color = UIColor(red: 202/255, green: 228/255, blue: 230/255, alpha: 1) ☠️
let color = UIColor(r: 202, g: 228, b: 230) // ????
essayez plutôt ceci:
passwordTextField.textColor = UIColor(red: 0.792, green: 0.894, blue: 0.901, alpha: 1.0
Mettez toujours des valeurs substituées. 202/255 = 0,792
le rouge, le vert, le bleu et l'alpha sont censés être compris entre 0,0 et 1,0.
Comme d'autres l'ont mentionné, les composants UIColor
sont normalisés dans une plage de 0,0 à 1,0 (je pense que les gammes de couleurs larges sont l'exception, mais n'ont pas encore fait de recherches à ce sujet).
Une conveninet extension à la classe UIColor
vous permettra d'utiliser des valeurs comprises entre 0 et 255 (comme celles obtenues auprès de divers inspecteurs et outils d'édition d'images):
import UIKit
extension UIColor {
convenience init(
redByte red:UInt8,
greenByte green:UInt8,
blueByte blue:UInt8,
alphaByte alpha:UInt8
) {
self.init(
red: CGFloat(red )/255.0,
green: CGFloat(green)/255.0,
blue: CGFloat(blue )/255.0,
alpha: CGFloat(alpha)/255.0
)
}
}
Méthodes pratiques UIColor, à partir d'Integers ou d'Hex.
extension UIColor {
convenience init(red: Int, green: Int, blue: Int, alpha: CGFloat) {
assert(red >= 0 && red <= 255, "Invalid red component")
assert(green >= 0 && green <= 255, "Invalid green component")
assert(blue >= 0 && blue <= 255, "Invalid blue component")
self.init(red: CGFloat(red) / 255.0, green: CGFloat(green) / 255.0, blue: CGFloat(blue) / 255.0, alpha: alpha)
}
convenience init(rgb: Int, alpha: CGFloat = 1) {
self.init(
red: (rgb >> 16) & 0xFF,
green: (rgb >> 8) & 0xFF,
blue: rgb & 0xFF,
alpha: alpha
)
}
}