【问题标题】:Changing the alpha of UIView affects the font opacity更改 UIView 的 alpha 会影响字体不透明度
【发布时间】:2017-06-29 21:03:49
【问题描述】:

很简单的问题:我想改变 UIView 的不透明度并保持字体在其上方,alpha = 1.0。

所以你可以看到有两个标签,在它们下面是 UIView。我已经设置了 UIView 的 opcaity(例如:@IBOutlet weak var coView: UIView!self.coView.alpha = 0.8)。结果是 UIView 和标签都更加透明,我想将标签的文本保持在 alpha = 1.0。是否可以不更改堆栈视图和约束?

【问题讨论】:

    标签: ios swift uiview uilabel alpha


    【解决方案1】:

    使用

     coView.backgroundColor = UIColor.black.withAlphaComponent(0.8)
    

    这非常烦人,并不是你想要的,但它是一种解决方法。它使用 alpha 值设置 coView 的背景颜色,从而有效地为您提供所需的内容。

    【讨论】:

      【解决方案2】:

      您应该将 Alpha 保留为 1 并选择自定义背景颜色(在属性检查器中),而不是更改对象的 Alpha:

      然后在自定义颜色小部件中根据需要更改颜色的不透明度。

      【讨论】:

        【解决方案3】:

        更改 UIView 的 alpha 会将其所有子视图的查看方式更改为新的 alpha 集。没有办法真正避免这种情况,但您可以通过使用其他一些辅助视图来解决这个问题。

        例如,在您的UIView pm 中,您可以有另一个名为backgroundView 的子视图,它位于背面,这是您设置背景颜色的那个。 UIView pm 中的所有其他元素都将位于 backgroundView 之上,并具有清晰的背景颜色。

        如果您只想更改颜色的 alpha,只需将 alpha 更改为 backgroundViewUIView pm 中的其他元素将保持相同的 alpha

        【讨论】:

        • 这可能行得通,但我有几个动画,所以有太多的改变要做。其他答案稍微好一点,但也不完美。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-12-07
        • 1970-01-01
        • 2012-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-30
        相关资源
        最近更新 更多