iPhone编程:将Alpha应用于父级但不应用于子视图

Mus*_*afa 29 iphone alpha uiview

是否可以为父视图设置Alpha为.75或.50(透明),但子视图/控件是不透明的(Alpha通道1.0 - 完全可见).

每当我将主要UIView的Alpha设置为透明时,所有子视图/控件也显示为透明.有没有解决方法?

小智 73

一种更简单的方法也可以在不制作兄弟姐妹的情况下实现.不要直接在父视图上设置alpha.而是使用

[parentView setBackgroundColor:[[UIColor clearColor] colorWithAlphaComponent:0.5]];
Run Code Online (Sandbox Code Playgroud)

现在,任何子视图都可以有自己的颜色,并且不会透明.

在Swift中,这将是

parentView.backgroundColor = UIColor.clearColor().colorWithAlphaComponent(0.7)
Run Code Online (Sandbox Code Playgroud)


Joh*_*ren 30

作为背景的父级应该在包装孩子的容器之前更改为兄弟姐妹.这样,您可以设置透明度而不会影响整个层次结构.

这看起来像这样.

  • <item-container>
    • <item-background>
    • <children-container>
      • <children/>

此层次结构具有相同的可见性顺序,并允许您独立于子容器的内容设置不透明度.