【问题标题】:Swift UIView Opacity ProgrammaticallySwift UIView Opacity 以编程方式
【发布时间】:2017-03-17 06:15:26
【问题描述】:

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

我想要重新创建的内容(来自属性检查器的设置): 背景颜色为 (RGB Sliders: 0, 0, 0) 和 Opacity Slider 设置为 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!

【问题讨论】:

  • 听起来你真正想要的是一些灰色阴影。那么为什么不直接创建它而不是尝试使用透明度呢?

标签: ios swift uiview opacity


【解决方案1】:

总结这些答案https://stackoverflow.com/a/40405424/7767664,https://stackoverflow.com/a/46669162/7767664

对于 UIView 本身的不透明度

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

用于 UIView 背景不透明度

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

【讨论】:

    【解决方案2】:

    您可以在 Swift 3 中将不透明度设置为如下所示

    view.alpha = CGFloat(0.1)
    

    【讨论】:

      【解决方案3】:

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

      UIWindow
          UINavigationControllers view
              Your View Controllers View
      

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

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

      【讨论】:

        【解决方案4】:

        你所描述的是:

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

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

        【讨论】:

        • 这是背景不透明度,不是自己查看
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-02
        • 2018-06-04
        • 2011-10-27
        • 2012-11-04
        相关资源
        最近更新 更多