web-dev-qa-db-ja.com

50%の不透明度の背景に100%の不透明度のUILabel(UIView?)

そのため、今はUIViewUILabelが含まれています。背景の不透明度を1.0未満にし、ラベルの不透明度を1.0にする必要があります。ただし、アルファはビュー階層に沿って伝播するため、ラベルも最終的に不透明度<1.0になります。

とにかくUILabelを別のビューのサブビューにせずに、私がやりたいことをする方法はありますか??

55
DevDevDev

背景色を半透明に設定するだけです:

_view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5f];
_

または、Swiftで:

_view.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.5)
_

または、Swift 3:

_view.backgroundColor = UIColor.black.withAlphaComponent(0.5)
_

この特定のケースでは、UIColor(white: 0, alpha: 0.5)はより簡潔ですが、colorWithAlphaComponentは一般に機能することに注意してください。

206
Ian Henry

コードで利用できることに加えて、iBからも簡単にこれを行うことができます。

  1. ストーリーボード内で、編集するビューを選択します。
  2. 右側のパネルから、属性インスペクターが開いていることを確認します。
  3. [背景]ドロップダウンボックスの右側をクリックし、[その他...]を選択します。カラーピッカーダイアログが開きます。
  4. 背景色の不透明度を設定するには、下部の「不透明度」を変更します。
13
Ja͢ck

UIViewの背景色を半透明の色で設定するか、画像自体を半透明にすることができます。このように、それはビュー自体ではなく、透明なビューのプロパティです。

0
Colin Gislason