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

时间:2017-02-11 15:29:21

标签: ios swift uiview uilabel alpha

非常简单的问题:我想改变UIView的不透明度,并将字体保持在alpha = 1.0之上。

enter image description here

enter image description here

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

3 个答案:

答案 0 :(得分:3)

使用

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

这是非常讨厌的,并不是你想要的,但它是一种解决方案。它使用alpha值设置coView的背景颜色,这有效地为您提供了所需的颜色。

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

您应该将Alpha设置为1,然后选择一种自定义的背景颜色(在“属性”检查器中),而不是更改对象的Alpha:

enter image description here

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