web-dev-qa-db-ja.com

SwiftプログラムによるUIViewの不透明度

UIViewのプロパティをいじって、ストーリーボードと属性インスペクターを介して簡単に実行できる、プログラムで希望の不透明な外観を実現するのにかなり苦労しています。

再作成したいもの(属性インスペクターからの設定):(RGB Sliders:0、0、0)の背景色と75%に設定されたOpacity SliderのUIView、アルファはデフォルトで1なので、基本的には黒いUIView不透明度を下げます。

私がプログラムで試したこと:

1)  view.backgroundColor = .black
    view.alpha = 0.75

2)  view.backgroundColor = UIColor.black.withAlphaComponent(0.75)
    view.isOpaque = true

添付されているのは、ストーリーボードで選択されたUIViewの画像と、表示する設定です。さらに情報が必要な場合は、遠慮なくお知らせください。あなたの助けに感謝します。

Screenshot of Storyboard + attributes inspector

更新:すべての入力をありがとう。 Clever Errorによるビューレイヤーの説明とMattのコードの組み合わせにより、希望どおりの外観を実現できました。

目的のUI Look!

7
iMoment

あなたが説明しているのは:

view.backgroundColor = UIColor.black.withAlphaComponent(0.75)
view.isOpaque = false

ビューは不透明ではないため、不透明としてマークしてはなりません。

12
matt

Swift 3のように、表示する不透明度を設定できます。

view.alpha = CGFloat(0.1)
7
gencaysahinn

これらの回答の要約 https://stackoverflow.com/a/40405424/7767664https://stackoverflow.com/a/46669162/7767664

uIView自体の不透明度

view.isOpaque = false
view.alpha = CGFloat(0.5)

uIView背景の不透明度

view.backgroundColor = UIColor.black.withAlphaComponent(0.5)
view.isOpaque = false
2
user924

アプリが実行されると、ビューの階層は次のようになります

UIWindow
    UINavigationControllers view
        Your View Controllers View

問題は、UIWindowがデフォルトで黒であり、UINavigationControllersビューがはっきりしていることです。つまり、透明な黒色と完全な黒色を混ぜて、真っ黒になります。

透明な黒である別のビューをビューコントローラーに追加してから、ビューコントローラーのビューの色をブレンドするビューの色に設定する必要があります。

0
Craig Siemens