親ビューのアルファを.75または.50(透明)に設定することはできますが、子ビュー/コントロールは不透明です(アルファチャネル1.0-完全に表示されます)。
メインUIViewのAlphaをtransparentに設定すると、すべての子ビュー/コントロールも透明として表示されます。回避策はありますか?
ビューを兄弟にせずに、より簡単な方法も 1 つ可能です。親ビューにアルファを直接設定しないでください。代わりに使用
[parentView setBackgroundColor:[[UIColor clearColor] colorWithAlphaComponent:0.5]];
現在、子ビューは独自の色を持つことができ、透明ではありません。
Swiftでは、これは
parentView.backgroundColor = UIColor.clearColor().colorWithAlphaComponent(0.7)
あなたの背景として機能する親は、あなたの子供を包むコンテナの前に兄弟に変更されるべきです。そうすれば、階層全体に影響を与えることなく透明度を設定できます。
これは次のようになります。
<item-container>
<item-background>
<children-container>
<children/>
この階層は、同じ可視性の順序を持ち、子コンテナの内容とは関係なく不透明度を設定できます。
これは遅い答えであり、すでに受け入れられているものがあることはわかっていますが、私にとって最善の解決策は、UIView
の透明度を直接設定するのではなく、背景色を0,0,0,0に設定して、完全に透明な色。
何をしようとしているのかは 100% わかりませんが、背景が透明なコンテナ ビューが必要な場合は、backgroundColor プロパティを [UIColor clearColor] に設定することで実現できます。そうすれば、背景を通して見ることができますが、すべてのサブビューは不透明なままです。背景を半透明にしたい場合は、[UIColor colorWithRed:green:blue:alpha:] を使用してください。
ビュー全体を半透明にし、他のビューを半透明にしたくない場合は、それらを兄弟にする必要があります。