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