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の画像と、表示する設定です。さらに情報が必要な場合は、遠慮なくお知らせください。あなたの助けに感謝します。
更新:すべての入力をありがとう。 Clever Errorによるビューレイヤーの説明とMattのコードの組み合わせにより、希望どおりの外観を実現できました。
あなたが説明しているのは:
view.backgroundColor = UIColor.black.withAlphaComponent(0.75)
view.isOpaque = false
ビューは不透明ではないため、不透明としてマークしてはなりません。
Swift 3のように、表示する不透明度を設定できます。
view.alpha = CGFloat(0.1)
これらの回答の要約 https://stackoverflow.com/a/40405424/7767664 、 https://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
アプリが実行されると、ビューの階層は次のようになります
UIWindow
UINavigationControllers view
Your View Controllers View
問題は、UIWindowがデフォルトで黒であり、UINavigationControllersビューがはっきりしていることです。つまり、透明な黒色と完全な黒色を混ぜて、真っ黒になります。
透明な黒である別のビューをビューコントローラーに追加してから、ビューコントローラーのビューの色をブレンドするビューの色に設定する必要があります。