違いを知りたいのですが:
スクリーンショットでは、それぞれの上に2つの黒い(アルファ= 1.0)UILabelを持つ2つのUIViewを作成しました。
マクロ_RGBが前に定義されていると仮定します。
#define _RGB(r,g,b,a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a]
そしてここにコードがあります::
[_view1 setBackgroundColor:_RGB(255, 0, 0, 1)];
[_view1 setAlpha:0.5];
[_view2 setBackgroundColor:_RGB(255, 0, 0, 0.5)];
[_view2 setAlpha:1];
[_view3 setBackgroundColor:_RGB(255, 0, 0, 1)];
[_view3 setAlpha:1];
視覚的に見える違いは1つだけです。bgカラーではなくビュー自体のアルファを変更すると、サブビューにも影響します。しかし、それ以外に私が考慮すべき機能の違いはありますか? (例:アニメーション、レイヤーなど)
違いは次のとおりです。
だからあなたの例では:
_view1
(ビューではアルファ<1):アルファはサブビューUILabelにも適用されます_view2
(背景色のアルファ<1):サブビューUILabelは非常に不透明です_view3
(両方にデフォルトのアルファ1):ええと、私たちは皆見ます:-)背景色とラベルは両方とも不透明です両方の使用例:
左の画像:白いチェックマークアイコンを含むサブビューUIImageView
を持つ半透明の黒いオーバーレイがあり、通常はアイコンを完全に不透明(不透明)にする必要があります。したがって、アルファ<1(例では0.75f)の背景色だけを黒に設定します。
反対に:
右の画像:白いパターン画像を含むサブビューUIImageView
を持つ半透明の黒いオーバーレイがあります(パターンは不透明な白で、アルファはありません)。また、オーバーレイのパターンも半透明にする必要があります。次に、背景色を黒に設定し、ビュー全体にアルファ1(不透明)およびアルファ<1を設定します。
ご覧のとおり、左側の画像のアイコンは完全に不透明ですが、右側のアイコンは星のパターンを通しても見ることができます。