ios - custom - uicolor swift 4
UIColor no funciona con valores RGBA (5)
Estoy tratando de cambiar el color del texto en un UITextField usando el siguiente código (valor RGBA). Sin embargo, solo aparece en blanco, o claro, no estoy muy seguro ya que el fondo es blanco.
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
Los valores RGB para UIColor están entre 0 y 1 (consulte la documentación "especificada como un valor de 0.0 a 1.0")
Debes dividir tus números por 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))
Otra cosa, no es necesario crear CGFloats:
passwordTextField.textColor = UIColor(red:202.0/255.0, green:228.0/255.0, blue:230.0/255.0, alpha:1.0)
prueba esto en su lugar:
passwordTextField.textColor = UIColor(red: 0.792, green: 0.894, blue: 0.901, alpha: 1.0
Siempre ponga valores sustituidos. 202/255 = 0.792
rojo, verde, azul y alfa se supone que están entre 0.0 y 1.0.
Como otros mencionaron, los componentes de UIColor
están normalizados en el rango 0.0 ~ 1.0 (creo que las gamas de color anchas son la excepción, pero aún no lo han investigado).
Una extensión de UIColor
para la clase UIColor
le permitirá usar valores en el rango de 0 ~ 255 (como los obtenidos de varios inspectores y herramientas de edición de imágenes):
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
)
}
}
Usando la conveniencia init (código como un profesional)
Paso 1
extension UIColor {
convenience init(r: CGFloat, g: CGFloat, b: CGFloat) {
self.init(red: r/255, green: g/255, blue: b/255, alpha: 1)
}
}
Uso
//let color = UIColor(red: 202/255, green: 228/255, blue: 230/255, alpha: 1) ☠️
let color = UIColor(r: 202, g: 228, b: 230) // 😍