我有一个略微半透明的视图,我将alpha设置为约.75并且它包含一个按钮作为子元素。 我希望按钮完全不透明,我在IB中设置了不透明属性,但按钮仍显示为半透明。
任何指针?
谢谢!
答案 0 :(得分:1)
superview的子视图总是最小的,与子视图一样透明。
子视图alpha = 0.5且superview alpha = 0.1将导致子视图的alpha为0.05。
实现这一目标的唯一方法是更改视图层次结构。您的子视图不得再是子视图。它可能仍处于相同的位置。 (可能需要不同的头寸价值)。
一个例子。 您的背景视图是backgroundView 你的superview是firstView 您的子视图是overlayView
您当前的层次结构是
backgroundView -> firstView -> overlayView
您应该将其更改为:
backgroundView -> first View
\-> overlay View.
如果您的firstView的位置是(10,10)并且您的overlayView的位置是(20,20),那么将overlayView的位置更改为(30,30),因为它现在位于背景视图的坐标系内。
代码: 在某些时候你曾经有过
[backgroundView addSubView:firstView];
[fisrtView addSubView:overlayView];
将其更改为
[backgroundView addSubView:firstView];
[backgroundView addSubView:overlayView];
如果您没有编码但在IB中定义它,那么只需在视图树中移动overlayView,使其与firstView处于同一级别。
无论您是编码还是在IB中绘制它,请确保firstView位于第一位且overlayView位于下一位。否则,当其alpa大于0时,firstView可以隐藏overlayView。