【问题标题】:Change button background color using swift language使用 swift 语言更改按钮背景颜色
【发布时间】:2014-08-17 02:45:56
【问题描述】:

我是 swift 语言的新手。有人可以告诉我如何使用 swift 语言更改按钮的背景颜色吗?

【问题讨论】:

    标签: ios iphone colors uibutton swift


    【解决方案1】:
    button.backgroundColor = UIColor.blue
    

    或任何其他颜色:redgreenyellow

    另一种选择是RGBA颜色:

    button.backgroundColor = UIColor(red: 0.4, green: 1.0, blue: 0.2, alpha: 0.5)
    

    【讨论】:

      【解决方案2】:

      试试这个,你需要像这样添加255

      button.backgroundColor = UIColor(red: 102/255, green: 250/255, blue: 51/255, alpha: 0.5)
      

      【讨论】:

      • 不太正确,您需要一个介于 0.0 和 1.0 之间的值。所以要么你使用这样的值,要么写115/255
      • 谢谢,除以 255 修复了我在 Swift4 中的错误。 sender.backgroundColor = UIColor(red: 3/255, green: 122/255, blue: 255/255, alpha: 1)
      【解决方案3】:

      xcode 8 和 swift 3 的更新,指定常用颜色,如:

      button.backgroundColor = UIColor.blue
      

      Color() 已被删除。

      【讨论】:

      • 更好的是:button.backgroundColor = .blue(因为编译器知道.backgroundColor是一个UIColor)。
      【解决方案4】:

      如果您想以编程方式设置按钮的背景颜色,那么此代码将非常帮助您

      Swift 3 和 Swift 4

      self.yourButton.backgroundColor = UIColor.red
      

      Swift 2.3 或更低版本

      self.yourButton.backgroundColor = UIColor.redColor()
      

      使用 RGB

      self.yourButton.backgroundColor = UIColor(red: 102/255, green: 250/255, blue: 51/255, alpha: 0.5)
      

      或者你可以使用浮点值

      button.backgroundColor = UIColor(red: 0.4, green: 1.0, blue: 0.2, alpha: 0.5)
      

      【讨论】:

        【解决方案5】:

        您可以使用 getRed 函数设置按钮的背景颜色。
        假设您有:

        1. 一个称为按钮的 UIButton,以及
        2. 您想将按钮的背景颜色更改为某个已知的 RBG 值

        然后,将以下代码放入要更改 UIButton 的背景颜色的函数中

        var r:CGFloat = 0
        var g:CGFloat = 0
        var b:CGFloat = 0
        var a:CGFloat = 0
        
        // This will be some red-ish color
        let color = UIColor(red: 200.0/255.0, green: 16.0/255.0, blue: 46.0/255.0, alpha: 1.0) 
        
        if color.getRed(&r, green: &g, blue: &b, alpha: &a){
            button.backgroundColor = UIColor(red: r, green: g, blue: b, alpha: a)
        }
        

        【讨论】:

        • 对不起,这是我最近听到的最愚蠢的话。只需使用button.backgroundColor = color
        【解决方案6】:

        U 还可以围绕 tintcolor 和 button 图像来间接改变颜色。

        【讨论】:

          【解决方案7】:
          /*Swift-5 update*/
          
          let tempBtn: UIButton = UIButton(frame: CGRect(x: 5, y: 20, width: 40, height: 40))       
          tempBtn.backgroundColor = UIColor.red
          

          【讨论】:

            【解决方案8】:

            要更改按钮的背景颜色,请使用:

            yourBtn.backgroundColor = UIColor.black

            如果您使用的是 storyBoard,请确保您已将您的 storyBoard 与您的 viewController 连接,并且您的项目已链接。

            如果您不知道如何操作,请查看下一个链接:

            How to connect ViewController.swift to ViewController in Storyboard?

            【讨论】:

              【解决方案9】:

              斯威夫特 3

              RGB 颜色

              btnLogin.backgroundColor = UIColor.init(colorLiteralRed: (100/255), green: (150/255), blue: (200/255), alpha: 1)
              

              使用原生颜色

              btnLogin.backgroundColor = UIColor.darkGray
              

              【讨论】:

                【解决方案10】:

                斯威夫特 4:

                您可以轻松使用十六进制代码:

                self.backgroundColor = UIColor(hexString: "#ff259F6C")
                
                self.layer.shadowColor = UIColor(hexString: "#08259F6C").cgColor
                

                十六进制颜色代码的扩展

                extension UIColor {
                    convenience init(hexString: String, alpha: CGFloat = 1.0) {
                        let hexString: String = hexString.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
                        let scanner = Scanner(string: hexString)
                        if (hexString.hasPrefix("#")) {
                            scanner.scanLocation = 1
                        }
                        var color: UInt32 = 0
                        scanner.scanHexInt32(&color)
                        let mask = 0x000000FF
                        let r = Int(color >> 16) & mask
                        let g = Int(color >> 8) & mask
                        let b = Int(color) & mask
                        let red   = CGFloat(r) / 255.0
                        let green = CGFloat(g) / 255.0
                        let blue  = CGFloat(b) / 255.0
                        self.init(red:red, green:green, blue:blue, alpha:alpha)
                    }
                    func toHexString() -> String {
                        var r:CGFloat = 0
                        var g:CGFloat = 0
                        var b:CGFloat = 0
                        var a:CGFloat = 0
                        getRed(&r, green: &g, blue: &b, alpha: &a)
                        let rgb:Int = (Int)(r*255)<<16 | (Int)(g*255)<<8 | (Int)(b*255)<<0
                        return String(format:"#%06x", rgb)
                    }
                }
                

                【讨论】:

                  【解决方案11】:

                  在您将要更改其背景的 UIButton 作为 OUTlet 连接到您的 ViewController.swift 文件后,您可以使用以下内容:

                   yourUIButton.backgroundColor = UIColor.blue
                  

                  【讨论】:

                    猜你喜欢
                    • 2015-06-04
                    • 1970-01-01
                    • 1970-01-01
                    • 2021-06-22
                    • 2015-04-03
                    • 2020-10-09
                    相关资源
                    最近更新 更多