ios - 渐变色作为 Swift4 中 UIButton 的背景色

标签 ios uibutton swift4

我有一个按钮,我正在尝试设置它的背景颜色渐变。我有三个十六进制值,我将它们转换为 RGB 并在我的代码中写入三个值,并将所有三个值传递给按钮框架。但是当我运行应用程序按钮时,背景不会根据我在代码中设置的颜色而改变。我得到三种颜色代码的代码是这样的,

 let gradientColor = CAGradientLayer()
    gradientColor.frame = loginButton.frame
    let color1 = UIColor(red: 183, green: 46, blue: 79, alpha: 1)
    let color2 = UIColor(red: 232, green: 79, blue: 80, alpha: 1)
    let color3 = UIColor(red: 145, green: 21, blue: 79, alpha: 1)
    gradientColor.colors = [color1,color2,color3]
    self.loginButton.layer.addSublayer(gradientColor)

最佳答案

试试看:

@IBOutlet weak var loginButton: UIButton!
func testGradientButton() -> Void {
    let gradientColor = CAGradientLayer()
    gradientColor.frame = loginButton.frame
    gradientColor.colors = [UIColor.blue.cgColor,UIColor.red.withAlphaComponent(1).cgColor]
    self.loginButton.layer.insertSublayer(gradientColor, at: 0)
}

结果如下:

enter image description here

另请注意:代码中 RGB 颜色的值远高于其正常值。查看您的控制台日志,它可能打印出以下错误:

[Graphics] UIColor created with component values far outside the expected range. Set a breakpoint on UIColorBreakForOutOfRangeColorComponents to debug. This message will only be logged once.

将所有值除以 255.0 并使用 insertSubLayer 函数。

let color1 = UIColor(red: 183.0/255.0, green: 46.0/255.0, blue: 79.0/255.0, alpha: 1)
let color2 = UIColor(red: 232.0/255.0, green: 79.0/255.0, blue: 80.0/255.0, alpha: 1)
let color3 = UIColor(red: 145.0/255.0, green: 21.0/255.0, blue: 79.0/255.0, alpha: 1)

这是您的颜色代码值的结果:

func testGradientButton() -> Void {
    let gradientColor = CAGradientLayer()
    gradientColor.frame = loginButton.frame
    let color1 = UIColor(red: 183.0/255.0, green: 46.0/255.0, blue: 79.0/255.0, alpha: 1)
    let color2 = UIColor(red: 232.0/255.0, green: 79.0/255.0, blue: 80.0/255.0, alpha: 1)
    let color3 = UIColor(red: 145.0/255.0, green: 21.0/255.0, blue: 79.0/255.0, alpha: 1)
    gradientColor.colors = [color1.cgColor,color2.cgColor,color3.cgColor]
    self.loginButton.layer.insertSublayer(gradientColor, at: 0)
}

enter image description here

关于ios - 渐变色作为 Swift4 中 UIButton 的背景色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48096759/

相关文章:

html - UIWebView 框架高度基于内容高度

ios - UINavigationItem TitleView 在使用 UIView 时中断

xcode - 如何更改 titleLabel 字体颜色,Xcode

ios - 如何使用 FontAwesome 制作多行的 UIButton?

ios - 如何有效地禁用按钮并只显示一条消息?

ios - 带有 UIButton 的 SWReveal

ios - Swift indexPathForSelectedRow 从 subview 返回 nil

swift - 由于 'private' 保护级别,Cocoapods lint 错误无法访问

ios - 创建隐藏/私有(private)目录 FileManager Swift

ios - 为什么 navigator.device.capture.captureVideo 有时会显示 Picture Camera 而不是摄像机?