2

我有一个类似于Can you override a parent UIView's alpha value on its subviews?的问题?

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

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

4

2 回答 2

1

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

于 2009-11-10T17:39:28.673 回答
0

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

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

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

于 2009-11-10T17:40:45.213 回答