from custom ios swift uicolor

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) // 😍