ios - swift 4 change placeholder text color
¿Cuál es el color predeterminado para el texto de marcador de posición en UITextField? (12)
¿Alguien sabe de qué color es el texto de marcador de posición de
UITextField
, por defecto?
Estoy tratando de configurar el texto de un
UITextView
con el mismo color.
He leído en otra parte que es
UIColor.lightGrayColor()
pero en realidad es un poco más ligero.
¡El código # 999999 coincide perfectamente en mi formulario!
El color es # C7C7CD (r: 199 g: 199 b: 205) (como lo dijo pterry26)
y la familia de fuentes es HelveticaNeue-Medium y el tamaño es 16
Tenga en cuenta que esto es una conjetura sobre cómo se ve el color en una pantalla.
Para los valores reales, simplemente inspeccione el código de Apple para
attributedPlaceholder
.
El color real no es sólido, pero tiene transparencia. Entonces el color más cercano es
Rojo: 4, Verde: 4, Azul: 30, Alfa: ~ 22%
Si usa esto con un fondo blanco, obtendrá lo que @ pterry26 escribió anteriormente.
Envié una captura de pantalla a mi Mac y utilicé la herramienta Cuentagotas de Photoshop. Para cualquier persona interesada, esta es al menos una muy buena aproximación del color del marcador de posición sobre un fondo blanco:
Rojo: 199, Verde: 199, Azul: 205
Es mejor tomar el color de un campo de texto dinámicamente en caso de que cambie en el futuro. Predeterminado a 70% de gris, que está bastante cerca
extension UITextField {
var placeholderColor: UIColor {
return attributedPlaceholder?.attributes(at: 0, effectiveRange: nil)[.foregroundColor] as? UIColor ?? UIColor(white: 0.7, alpha: 1)
}
}
Establezca la fuente de la etiqueta en "luz"
mylabel.font = [UIFont fontWithName: @ "HelveticaNeue-Light" tamaño: 14.0f];
y el código de color para el texto del marcador de posición es
# c2b098
Puede obtener este color inspeccionando el
UITextField
attributedPlaceholder
del
UITextField
.
El valor predeterminado parece ser:
NSColor = "UIExtendedSRGBColorSpace 0 0 0.0980392 0.22";
Puede agregar una extensión (o categoría) en
UIColor
:
extension UIColor {
static var placeholderGray: UIColor {
return UIColor(colorLiteralRed: 0, green: 0, blue: 0.0980392, alpha: 0.22)
}
}
2018, la última sintaxis es solo:
extension UIColor {
static var officialApplePlaceholderGray: UIColor {
return UIColor(red: 0, green: 0, blue: 0.0980392, alpha: 0.22)
}
}
#colorLiteralRed
quedó en desuso.
Tenga en cuenta
this
en algunos casos.
Según el código de Apple, es 70% gris
open var placeholder: String? // default is nil. string is drawn 70% gray
y si lo convertimos a rgb:
UIColor.init(red: 178/255, green: 178/255, blue: 178/255, alpha: 1)
Solo para agregar que en iOS 13 (y versiones posteriores), Apple expone el color del marcador de posición a través de
UIColor.placeholderText
y es dinámico (admite tanto oscuro como claro).
Poniéndolo con pre-iOS 13:
static var placeholderText: UIColor { if #available(iOS 13.0, *) { return .placeholderText } return UIColor(red: 60, green: 60, blue: 67)!.withAlphaComponent(0.3) }
Usando los valores de la respuesta correcta anterior
extension UIColor {
class func greyPlaceholderColor() -> UIColor {
return UIColor(red: 0.78, green: 0.78, blue: 0.80, alpha: 1.0)
}
}