【问题标题】:UIView background color in SwiftSwift中的UIView背景颜色
【发布时间】:2014-07-29 12:29:55
【问题描述】:

有没有办法用 Swift 设置 UIView 背景颜色?

我知道在 Objective-C 中,你会使用 self.view.backgroundColor = [UIColor redColor];,但在 Swift 中却不一样。我环顾四周,因为 Swift 才一周左右,我找不到答案。

有人有什么建议吗?

【问题讨论】:

  • 你在找借口。 ;-) 我在第一天就找到了这个问题的答案。我是这样找到它的:在 Xcode 中,在代码编辑器中输入 UIColor,然后按住命令键并单击单词 UIColor。您将直接跳转到“标题”,您将在其中找到所有可用的功能。

标签: swift ios8 xcode6


【解决方案1】:

如果您想设置自定义 RGB 颜色,请尝试以下操作:

self.view.backgroundColor = UIColor(red: 20/255.0, green: 106/255.0, blue: 93/255.0, alpha: 1)

不要忘记为每种颜色保留 /255.0

【讨论】:

    【解决方案2】:

    试试这个,它就像一个魅力!对我来说,

    使用 ColorLiteral 以编程方式添加 backgroundColor 的最简单方法。

    您需要添加属性 ColorLiteral,Xcode 会提示您提供一个完整的颜色列表,您可以在其中选择任何颜色。这样做的好处是我们使用更少的代码,添加 HEX 值或 RGB。您还将从情节提要中获得最近使用的颜色。

    按照步骤,

    1) 在 viewDidLoad() 中添加以下代码行,

    self.view.backgroundColor = ColorLiteral
    

    然后点击进入按钮。

    2) 在=旁边显示方框

    3) 当点击 Square Box Xcode 会提示你一个完整的颜色列表,你可以选择任何颜色也可以设置 HEX 值或 RGB

    4) 可以成功设置颜色。

    希望这将有助于一些人以不同的方式设置背景颜色。

    【讨论】:

    • 我喜欢这个技巧。谢谢。在自动完成中找到“Color Literal”之前,我对使用“ColorLiteral”的第一步感到有些困惑。
    【解决方案3】:

    @Miknash 和@wolfgang gutierrez barrera 的回复对我很有帮助。唯一不同的是我必须在函数调用中添加rgbValue:

    UIColorFromHex(rgbValue: 0xA6D632,alpha: 1 ) 喜欢这样

    【讨论】:

      【解决方案4】:

      在 Swift 4 中,和 Swift 3 一样简单:

      self.view.backgroundColor = UIColor.brown
      

      【讨论】:

        【解决方案5】:

        如果您正在处理 RGB 值,您可以使用此扩展作为替代。

        extension UIColor {
            static func rgb(red: CGFloat, green: CGFloat, blue: CGFloat) -> UIColor {
                return UIColor(red: red/255, green: green/255, blue: blue/255, alpha: 1)
              }
            }
        

        【讨论】:

          【解决方案6】:

          我看到这个问题已经解决了,但是,我想添加一些信息来帮助别人。

          如果你想使用十六进制来设置背景颜色,我找到了这个函数并且工作:

          func UIColorFromHex(rgbValue:UInt32, alpha:Double=1.0)->UIColor {
              let red = CGFloat((rgbValue & 0xFF0000) >> 16)/256.0
              let green = CGFloat((rgbValue & 0xFF00) >> 8)/256.0
              let blue = CGFloat(rgbValue & 0xFF)/256.0
          
              return UIColor(red:red, green:green, blue:blue, alpha:CGFloat(alpha))
          }
          

          我使用这个函数如下:

          view.backgroundColor = UIColorFromHex(0x323232,alpha: 1)
          

          有时你必须使用self:

          self.view.backgroundColor = UIColorFromHex(0x323232,alpha: 1)
          

          就是这样,我希望它对某人有所帮助。

          抱歉我的英语不好。

          这项工作适用于 iOS 7.1+

          【讨论】:

            【解决方案7】:

            您可以使用下面的行进入闭包(viewDidLoaddidLayOutSubViews 等):

            self.view.backgroundColor = .redColor()
            

            编辑 Swift 3:

            view.backgroundColor = .red
            

            【讨论】:

              【解决方案8】:
              self.view.backgroundColor = UIColor.redColor()
              

              在 Swift 3 中:

              self.view.backgroundColor = UIColor.red
              

              【讨论】:

              • 如何使用十六进制?
              • @Igor Ronner UIColor(红色:0xFF / 0xFF,绿色:0x00 / 0xFF,蓝色:0x00 / 0xFF,alpha:0xFF / 0xFF)
              • 在 swift 4:- self.view.backgroundColor = .red
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2015-02-10
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-09-08
              • 2013-11-18
              相关资源
              最近更新 更多