不要用superview alpha值更新子视图

我的问题是当我添加一个视图作为子视图的根视图。当我改变了根视图的alpha值同样也发生在子视图也。其实我不需要在子视图中更新。是否有任何解决scheme来做这样的。

这只会改变根视图的alpha,而不会改变其他视图

self.view.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.5]; 

build立在@shabbirv的答案上,也可以使用IB的颜色select器

选色器

您需要更改视图的结构。 不要将你的子视图放在根视图上,而是在你的根视图上创build一个ontop层,但是仍然把子视图添加到根。 当更改图层的alpha值时,不会影响子视图。 下面的示例结构。

你目前的结构:

 RootView->Subviews //Changing RootView alpha effects Subviews. 

需要的结构:

 RootView->View->Subviews(Still Added to RootView) //Changing alpha of Layer doesn't effect subviews. 

希望这可以帮助。

这也将通过改变根视图的颜色来解决这个问题,这不会影响子视图。

 [rootView setBackgroundColor:[[UIColor blackColor] colorWithAlphaComponent:0.7]];