Swift UIView 不透明度编程

Swift UIView Opacity Programmatically

我很难弄乱 UIView 的属性以编程方式实现所需的不透明外观,这可以通过 Storyboard 和 Attributes Inspector 轻松完成。

我想重新创建的内容(来自属性检查器的设置): 背景颜色为 (RGB Sliders: 0, 0, 0) 且不透明度滑块设置为 75% 的 UIView,alpha 默认值为 1。所以基本上是黑色 UIView,不透明度降低。

我以编程方式尝试过的内容:

1)  view.backgroundColor = .black
    view.alpha = 0.75

2)  view.backgroundColor = UIColor.black.withAlphaComponent(0.75)
    view.isOpaque = true

附上在Storyboard中选择的UIView的图片以及设置供您查看。如果您需要更多信息,请随时告诉我。非常感谢您的帮助。

更新:感谢您的所有意见。 Clever Error 对视图层的解释和 Matt 的代码相结合,使我能够实现我想要的外观。

Desired UI Look!

您所描述的是:

view.backgroundColor = UIColor.black.withAlphaComponent(0.75)
view.isOpaque = false

不能将视图标记为不透明,因为它不是不透明的。

当您的应用运行时,视图层次结构将为

UIWindow
    UINavigationControllers view
        Your View Controllers View

问题是UIWindow默认是黑色的,UINavigationControllers视图是清晰的。所以它最终将你的透明黑色与全黑色混合得到黑色。

您需要向视图控制器添加另一个透明黑色视图,然后将视图控制器视图颜色设置为您想要与之混合的颜色。

您可以在 Swift 3

中将不透明度设置为如下所示
view.alpha = CGFloat(0.1)

总结这些答案,

对于 UIView 本身的不透明度

view.isOpaque = false
view.alpha = CGFloat(0.5)

用于 UIView 背景不透明度

view.backgroundColor = UIColor.black.withAlphaComponent(0.5)
view.isOpaque = false