Swift中的UIView背景颜色

60

有没有一种方法可以使用Swift设置UIView的背景颜色?

我知道在Objective-C中,您会使用self.view.backgroundColor = [UIColor redColor];,但在Swift中不适用。我已经找过了,因为Swift只有一个星期左右,我找不到答案。

有人有什么建议吗?


10
你在找借口。;-) 我第一天就找到了这个问题的答案。方法如下:在 Xcode 中,在你的代码编辑器中输入 UIColor,然后按住 Command 键并单击 UIColor 这个词。你将直接跳转到 "header",在那里你会找到所有可用的函数。 - Matthias Bauch
9个回答

135
self.view.backgroundColor = UIColor.redColor()

在 Swift 3 中:

self.view.backgroundColor = UIColor.red

4
我该如何使用十六进制? - Igor Ronner
3
@Igor Ronner UIColor(red: 0xFF / 0xFF, green: 0x00 / 0xFF, blue: 0x00 / 0xFF, alpha: 0xFF / 0xFF)翻译:这段代码是关于UIColor(颜色)的,其参数包括红、绿、蓝和透明度值。这里使用十六进制表示法来设置颜色数值,其中0xFF表示255,0x00表示0。因此,这个颜色的RGB值为红色完全饱和,透明度为不透明。 - Leo Dabus
1
在 Swift 4 中: self.view.backgroundColor = .red - dinesh sharma

27

试试这个,对我来说非常有效!

使用ColorLiteral以编程方式最简单地添加背景颜色。

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

按照以下步骤操作:

1)在viewDidLoad()中添加下面一行代码:

self.view.backgroundColor = ColorLiteral

并点击“Enter”按钮。

2)在“=”旁边显示正方形框。

输入图像描述

3)单击正方形框时,Xcode将提示您整个颜色列表,您可以选择任何颜色,还可以设置HEX值或RGB

输入图像描述

4)您可以成功地设置颜色。

输入图像描述

希望这能帮助有需要的人以不同方式设置背景颜色。


1
我喜欢这个提示。谢谢你。一开始使用"ColorLiteral"时我有点困惑,直到在自动完成中找到"Color Literal"。 - Marcy

19

我看到这个问题已经解决,但我想补充一些信息,可以帮助别人。

如果你想使用十六进制设置背景颜色,我发现这个函数可行:

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及以上版本。


需要注意的一件事是,在以下代码中需要添加参数名称: UIColorFromHex(rgbValue: 0x323232, alpha: 1) - Tegan Snyder

16
你可以使用下面的这行代码,它需要放在一个闭包(viewDidLoaddidLayOutSubViews等)中:
self.view.backgroundColor = .redColor()

编辑 Swift 3:

view.backgroundColor = .red

7

如果您需要处理 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)
      }
    }

4
在Swift 4中,与Swift 3一样简单:
self.view.backgroundColor = UIColor.brown

2
如果您想设置自定义的RGB颜色,请尝试以下操作: self.view.backgroundColor = UIColor(red: 20/255.0, green: 106/255.0, blue: 93/255.0, alpha: 1) 不要忘记为每种颜色保留/255.0。

1

@Miknash和@wolfgang gutierrez barrera的回答对我很有帮助,唯一的区别是我需要在函数调用中添加rgbValue:

UIColorFromHex(rgbValue: 0xA6D632,alpha: 1 )就像这样


0
在Xcode 13中,快捷方式ColorLiteral不再起作用。 现在,您必须使用此快捷方式:#colorLiteral(

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接