デフォルトでは、UITextField
のプレースホルダーテキストが何色であるかを知っていますか? UITextView
のテキストを同じ色に設定しようとしています。私はそれがUIColor.lightGrayColor()
であることをどこかで読んだことがありますが、実際には少し軽くなっています。
この色は、attributedPlaceholder
からUITextField
を調べることで取得できます。
デフォルトはNSColor = "UIExtendedSRGBColorSpace 0 0 0.0980392 0.22";
UIColor
に拡張子(またはカテゴリ)を追加できます。
extension UIColor {
static var placeholderGray: UIColor {
return UIColor(colorLiteralRed: 0, green: 0, blue: 0.0980392, alpha: 0.22)
}
}
2018、最新の構文は次のとおりです。
extension UIColor {
static var officialApplePlaceholderGray: UIColor {
return UIColor(red: 0, green: 0, blue: 0.0980392, alpha: 0.22)
}
}
#colorLiteralRed
は廃止されました。 this に注意してください。
色は#C7C7CD(r:199 g:199 b:205)(pterry26が言ったこととして)
フォントファミリはHelveticaNeue-Mediumで、サイズは16です
これは、画面上で色がどのように見えるかを推測することに注意してください。実際の値については、単にApple attributedPlaceholder
のコードを調べてください。
私はMacにスクリーンショットを送り、Photoshopのスポイトツールを使用しました。興味のある人にとっては、これは少なくとも白い背景上のプレースホルダーの色の非常に良い近似です:
赤:199、緑:199、青:205
実際の色は単色ではありませんが、透明度があります。したがって、最も近い色は
赤:4、緑:4、青:30、アルファ:〜22%
これを白い背景で使用すると、@ pterry26が上に書いたものが得られます。
上記の正解の値を使用する
extension UIColor {
class func greyPlaceholderColor() -> UIColor {
return UIColor(red: 0.78, green: 0.78, blue: 0.80, alpha: 1.0)
}
}
Appleコードによると、70%グレーです
open var placeholder: String? // default is nil. string is drawn 70% gray
そして、それをrgbに変換すると:
UIColor.init(red: 178/255, green: 178/255, blue: 178/255, alpha: 1)
将来変更された場合に備えて、テキストフィールドの色を動的に取得することをお勧めします。デフォルトは70%グレーで、これはpretty closeです
extension UITextField {
var placeholderColor: UIColor {
return attributedPlaceholder?.attributes(at: 0, effectiveRange: nil)[.foregroundColor] as? UIColor ?? UIColor(white: 0.7, alpha: 1)
}
}
コード#999999は私のフォームに完全に一致します!