如何使用SwiftUI使用alpha值创建颜色?

时间:2019-06-30 05:15:55

标签: ios swiftui

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

UIColor(red: 0, green: 0, blue: 0, alpha: 0.8)

但是该方法在Color的相应类SwiftUI上不可用。

我可以使用什么?

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

opacity 修改器应用于任何SwiftUI视图,例如:

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

答案 3 :(得分:1)

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

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

如果您已经有了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))