更改 UIView 的 alpha 会影响字体不透明度

Changing the alpha of UIView affects the font opacity

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

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

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

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

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

使用

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

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

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

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