同一容器中子视图的不同alpha

时间:2009-11-10 16:39:50

标签: iphone cocoa-touch uiview alphablending

我有一个与Can you override a parent UIView's alpha value on one of its subviews?

类似的问题

在某些情况下,我想在当前视图上显示自定义半透明全屏叠加视图。诀窍是我希望它在顶部有一些自定义导航栏和其他一些内容(让它成为标签),我希望导航栏不透明,即在原始视图上绘制所有内容。与此同时,我希望所有其他内容都是半透明的。我不想干扰主视图的导航栏,因为可能根本没有导航栏。我想创建一个带有导航栏和其他所有内容的容器视图,并将其添加到窗口中。但是我所能提出的容器,导航栏和内容的背景颜色和alpha的组合似乎都不起作用。

我发现的问题表明,如果容器视图不是不透明的,那是不可能的。我的情况可能略有不同,因为透明和不透明部分之间存在简单的边界线。所以我仍然希望有一些简单的方法。或者我是否必须单独管理不透明的导航栏和透明内容视图?

2 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你应该让你的容器视图完全透明(backgroundColor = [UIColor clearColor])并将不透明的导航栏和半透明的内容视图添加到容器视图。

答案 1 :(得分:0)

编辑:忽略这个答案。我误解了这个问题。

上一篇文章的回答是不正确的(正如我所理解的那样。)每个视图的alpha都是独立设置的。在Interface Builder中或从nib加载后,需要在添加每个视图时将alpha调整到所需的级别。

如果您不想覆盖导航栏,您可以(1)将叠加视图的框架定位在导航栏下方,或者(2)在叠加视图中创建两个同级视图,一个视图在导航上是透明的酒吧和另一个有你的半透明元素。