少し半透明のビューがあり、アルファを約 .75 に設定し、サブ要素としてボタンが含まれています。ボタンを完全に不透明にしたいので、IB で opaque プロパティを設定しましたが、ボタンは半透明で表示されます。
ポインタはありますか?
ありがとう!
少し半透明のビューがあり、アルファを約 .75 に設定し、サブ要素としてボタンが含まれています。ボタンを完全に不透明にしたいので、IB で opaque プロパティを設定しましたが、ボタンは半透明で表示されます。
ポインタはありますか?
ありがとう!
スーパービューのサブビューは常に、そのサブビューと同じくらい透過的です。
サブビュー アルファ = 0.5 およびスーパービュー アルファ = 0.1 の場合、サブビューのアルファは 0.05 になります。
これを達成する唯一の方法は、ビュー階層を変更することです。あなたのサブビューはもはやサブビューであってはなりません。まだ同じ位置にあるかもしれません。(異なる位置の値が必要になる場合があります)。
例。バックグラウンド ビューは backgroundView です。スーパービューは 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 を非表示にする可能性があります。