Ios 如何使用SwiftUI创建具有alpha值的颜色?

Ios 如何使用SwiftUI创建具有alpha值的颜色?,ios,swiftui,Ios,Swiftui,在UIKit中,使用alpha值创建颜色有多种方法,例如: UIColor(red: 0, green: 0, blue: 0, alpha: 0.8) 但是此方法在SwiftUI的相应类Color上不可用 我可以使用什么?在SwiftUI中有一个名为opacity的特定修改器,可用于更改任何颜色的alpha级别 Text("Hello world").background(Color.black.opacity(0.8)) // Set the background color as par

UIKit
中,使用alpha值创建颜色有多种方法,例如:

UIColor(red: 0, green: 0, blue: 0, alpha: 0.8)
但是此方法在
SwiftUI
的相应类
Color
上不可用


我可以使用什么?

SwiftUI
中有一个名为
opacity
的特定修改器,可用于更改任何颜色的alpha级别

Text("Hello world").background(Color.black.opacity(0.8)) // Set the background color as partially transparent.
此外,相同的修改器可以应用于任何视图,以更改其alpha

Image("myImage").opacity(0.8) //The image will be partially transparent

颜色初始值设定项具有不透明度参数:

Color(red: 1.0, green: 0, blue: 1.0, opacity: 0.2)

不透明度修改器应用于任何SwiftUI视图,如:

RoundedRectangle(cornerRadius: 5)
    .fill(Color.yellow)
    .frame(width: 50, height: 50)
    .opacity(0.5)

这里有几个答案指向
.opacity()
视图方法。这涵盖了最常见的用例,但OP可能想知道的是如何创建透明的
颜色

一种是使用
Color
构造函数,该构造函数具有颜色空间、组件和不透明度,如下面的第一个示例所示

如果您已经有了
颜色
并且想要半透明版本,请使用
UIColor
的桥接,如下面的第二个示例所示

let transparentTeal = Color(.sRGB, red: 0.4, green: 1, blue: 0.1, opacity: 0.2)

let red = Color.red

let transparentRed = Color(UIColor(red).withAlphaComponent(0.3))

对您的答案有一点贡献:
.opacity()
更改任何视图的不透明度。碰巧颜色是一种视图。但是,不需要创建具有不透明度的颜色,因为它在初始化器中有自己的参数(请检查我的答案)。另外:准确地说:Text(“”)。background(color.black.opacity(0.8))不“将颜色设置为背景”。它实际上在做的是在文本后面放置一个视图,它恰好是一个绘制特定颜色的视图。但是,您可以指定任何视图。例如,try:Text(“2222”)。background(Text(“1111”))这是唯一一个会改变颜色不透明度并且仍然保持
颜色的答案。通过向颜色添加
.opacity
修改器,它将返回
视图
,而不是
颜色
。例如,您不能使用,
.foregroundColor(Color.black.opacity(0.8))
,因为您刚刚将颜色更改为视图。这是可行的,但没有回答OP关于如何创建颜色的问题。“不透明度”修改器用于视图