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
我很难弄乱 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