我有一个视图作为另一个视图的子视图,然后我将父视图的alpha值设置为0.5,但这也使得子视图即使在其alpha值设置为1时也是透明的。所以我该如何制作当子视图的父视图的alpha值小于1时,子视图是否为非透明(不透明)
答案 0 :(得分:15)
你最接近的是colorWithAlphaComponent:
。使用类似下面的内容,您可以设置父视图背景的alpha分量,它不会影响子视图。
[yourSuperview setBackgroundColor:[[UIColor blackColor] colorWithAlphaComponent:0.5]];
答案 1 :(得分:1)
如果将父视图设置为0.5,则所有子视图也将变为0.5或更小。你必须提出不同的设计方法。
答案 2 :(得分:1)
以下方法对我有用。
...
//XDDFChartData.Series series = data.getSeries().get(index);
XDDFChartData.Series series = data.getSeries(index);
...
现在,超级视图的alpha属性未更改,它不会影响其子视图的alpha。因此,子视图将是不透明的(如果您具有背景色)。
答案 3 :(得分:0)
父视图应该有两个设计。一个是"启用"设计,显示它,另一个是"残疾"设计,包含透明背景。
您无法使用alpha执行此操作,因为子视图会继承alpha。如果
parent.alpha = x
和
view.alpha = y,
然后视图的真正alpha将是:
x * y
答案 4 :(得分:0)
我想,你已经创建了View by Storyboard。我已经面临这个问题。找到下面的代码,这在我的情况下是正确的。
[MyParentView setBackgroundColor:[[UIColor blackColor] colorWithAlphaComponent:0.6]];
希望,这可能对你有帮助。
答案 5 :(得分:0)
对于Swift 4.2
self.yoursuperview.backgroundColor = UIColor.black.withAlphaComponent(0.5)