2016-07-23 3 views
15

UIViewを画面全体(ナビゲーションバーを含む)に配置したいと考えています。このビューは0.3の不透明度で黒になります。私は画面の内容を暗くし、これを上に見るためにこれをしたいと思います。私はこのコードを使用しています:Swiftのウィンドウビューの上にあるサブビュー

UIApplication.sharedApplication().keyWindow?.addSubview(darkView) 

これは期待どおりの画面全体をカバーしています。しかし、私は今この暗いビューの上に別のビューを配置したい。これを行う方法はありますか?私が試したすべてのものが、暗い視野の下にあるビューになります。すべてのポインタは本当にありがとう!ありがとう

+0

あなたは、あなたがちょうどあなたの現在のコントローラから半透明のフルスクリーン・コントローラを提示しないのはなぜ – Feldur

+0

を試してみましたが、何のためのコードを表示する必要があるでしょうか?ウィンドウにビューを追加する必要があると思われる場合は、間違っている可能性があります。 – Sulthan

+0

この方法ではなく、カスタムトランジションで実装する必要があります。 –

答えて

27

それは本当にです。

windowに別のビューを追加するだけです。そして、あなたが追加した最初のビューの上にそれがあります。たとえば、次のコードは、黒表示と白のビューを追加します。

let window = UIApplication.sharedApplication().keyWindow! 
let v = UIView(frame: CGRect(x: window.frame.origin.x, y: window.frame.origin.y, width: window.frame.width, height: window.frame.height)) 
window.addSubview(v); 
v.backgroundColor = UIColor.blackColor() 
let v2 = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 50)) 
v2.backgroundColor = UIColor.whiteColor() 
window.addSubview(v2) 

また、あなたは追加最初のビューのサブビューとして新しいビューを追加することができますシンプル

let window = UIApplication.sharedApplication().keyWindow! 
let v = UIView(frame: CGRect(x: window.frame.origin.x, y: window.frame.origin.y, width: window.frame.width, height: window.frame.height)) 
window.addSubview(v); 
v.backgroundColor = UIColor.blackColor() 
let v2 = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 50)) 
v2.backgroundColor = UIColor.whiteColor() 
v.addSubview(v2) 

! SWIFT 3の使用のために

+1

これはありがたいですが、既存のビューコントローラーからビューを直接ウィンドウのビューの前面に持っていく方法はありますか? – Kex

+0

@ケックスいいえ、私が心配している限り。 – Sweeper

+0

ありがとうございます。良い仕事。 – Raja

13

この:

let window = UIApplication.shared.keyWindow! 
window.addSubview(someView) 
関連する問題