通过编程方式设置Swift UIView的不透明度

7

我在使用UIView的属性时遇到了一些困难,希望通过编程实现一个与Storyboard和Attributes Inspector轻松实现的不透明效果。

我想要重新创建以下设置(来自属性检查器): 具有(RGB滑块:0、0、0)背景颜色,并将不透明度滑块设置为75%,透明度默认为1。因此,基本上是降低透明度的黑色UIView。

我尝试过的编程方法:

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

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

以下是所选Storyboard中UIView的设置截图供您参考。如果您需要更多信息,请随时告诉我。非常感谢您的帮助。

Storyboard + 属性检查器截图

更新:感谢所有人的建议。 Clever Error对视图层的解释和Matt的代码组合使我达到了我想要的外观。

期望的UI外观!


听起来你真正想要的是一些灰色阴影。那么为什么不直接创建它,而不是试图使用透明度呢? - Caleb
4个回答

14
您所描述的是:
view.backgroundColor = UIColor.black.withAlphaComponent(0.75)
view.isOpaque = false

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


它的背景不透明度,而非视图本身。 - user924

8
在Swift 3中,您可以像下面这样设置透明度来查看:
view.alpha = CGFloat(0.1)

4

0

当您的应用程序运行时,视图层次结构将会被创建。

UIWindow
    UINavigationControllers view
        Your View Controllers View

问题在于UIWindow默认是黑色的,而UINavigationControllers视图是透明的。因此,它最终会将您的透明黑色与完全黑色混合在一起,从而得到纯黑色。
您需要向视图控制器添加另一个透明黑色的视图,然后将视图控制器的视图颜色设置为要混合的颜色。

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