UIColor不使用RGBA值

Ste*_*Fox 24 uicolor ios swift

我正在尝试使用以下代码(RGBA值)更改UITextField中的文本颜色,但它只是显示为白色或清晰,我不太确定,因为背景本身就是白色.

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
Run Code Online (Sandbox Code Playgroud)

bjt*_*tus 65

UIColor的RGB值介于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))
Run Code Online (Sandbox Code Playgroud)

另外,你不需要创建CGFloats:

passwordTextField.textColor = UIColor(red:202.0/255.0, green:228.0/255.0, blue:230.0/255.0, alpha:1.0)
Run Code Online (Sandbox Code Playgroud)

  • 两年后,这仍然是唯一的方法!令人惊讶的是很少在其他任何地方提到它! (2认同)

Alw*_*win 5

使用便捷初始化(类似于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)
    }
}
Run Code Online (Sandbox Code Playgroud)

用法

//let color = UIColor(red: 202/255, green: 228/255, blue: 230/255, alpha: 1) ??
let color = UIColor(r: 202, g: 228, b: 230) // 
Run Code Online (Sandbox Code Playgroud)

  • 只有1步?:P (2认同)