UIColor не работает с значениями RGBA
Я пытаюсь изменить цвет текста в UITextField, используя следующий код (значение RGBA), однако он просто выглядит белым или ясным, я не уверен, поскольку фон сам по себе белый.
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
Ответы
Ответ 1
Значения RGB для UIColor находятся между 0 и 1 (см. документация ", указанная как значение от 0.0 до 1.0" )
Вам нужно разделить свои номера на 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))
Другое дело, вам не нужно создавать CGFloats:
passwordTextField.textColor = UIColor(red:202.0/255.0, green:228.0/255.0, blue:230.0/255.0, alpha:1.0)
Ответ 2
попробуйте это вместо:
passwordTextField.textColor = UIColor(red: 0.792, green: 0.894, blue: 0.901, alpha: 1.0
Всегда помещайте замещенные значения. 202/255 = 0,792
Ответ 3
красный, зеленый, синий и альфа должны быть между 0.0 и 1.0.
Ответ 4
Как уже упоминалось, компоненты UIColor
нормированы в диапазоне 0,0 ~ 1,0 (я думаю, что широкие цветовые гаммы являются исключением, но пока не исследовали).
Расширение для класса UIColor
позволит вам использовать значения в диапазоне 0 ~ 255 (например, полученные от различных инспекторов и инструментов редактирования изображений):
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
)
}
}
Ответ 5
Использование удобства init (код как pro)
Шаг 1
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) // 😍