是否可以为父视图将Alpha设置为.75或.50(透明),但子视图/控件是不透明的(Alpha通道1.0 - 完全可见)。
每当我将主要UIView的Alpha设置为透明时,所有子视图/控件也会显示为透明。有没有解决方法?
答案 0 :(得分:71)
在不制作兄弟姐妹的情况下,也可以采用一种更简单的方法。不要直接在父视图上设置alpha。而是使用
[parentView setBackgroundColor:[[UIColor clearColor] colorWithAlphaComponent:0.5]];
现在任何子视图都可以有自己的颜色,并且不会透明。
在Swift中,这将是
parentView.backgroundColor = UIColor.clearColor().colorWithAlphaComponent(0.7)
答案 1 :(得分:29)
作为背景的父母应该在包装孩子的容器之前更改为兄弟姐妹。这样,您可以设置透明度而不会影响整个层次结构。
这看起来像这样。
<item-container>
<item-background>
<children-container>
<children/>
此层次结构具有相同的可见性顺序,您可以独立于子容器的内容设置不透明度。
答案 2 :(得分:3)
我知道这是一个迟到的答案,已经接受了一些东西,但我发现对我来说最好的解决办法是不直接设置UIView
的透明度,而是将它的背景颜色设置为0, 0,0,0,使颜色完全透明。
答案 3 :(得分:2)
不是100%确定你要做什么,但如果你想拥有一个透明背景的容器视图,你可以通过将backgroundColor属性设置为[UIColor clearColor]来实现。通过这种方式,您可以看到背景,但所有子视图都将保持不透明。如果您希望背景为半透明,请使用[UIColor colorWithRed:green:blue:alpha:]。
如果您希望整个视图都是半透明的,而其他视图则不是,那么您必须让它们成为兄弟姐妹。