質問: 5.0 // 貼り付ける // self.view.addSubview(infomationDialog) self.navigationController!.view.addSubview(infomationDialog) ``` ・カスタムダイアログクラス ``` class CustomDialogView: UIView { @IBAction func closeButtonClicked(_ sender: UIButton) { self.removeFromSuperview() } } ``` CustomDialogViewのレイアウトはxibファイルにて設定しています コメントアウトしているself.view.addSubview(infomationDialog)にて実装すると ナビゲーションエリアとタブエリアの両方選択できてしまいました。 self.navigationController!.view.addSubviewにするとナビゲーションエリアは選択できませんが、タブエリアは選択できてしまいます。 (おそらくナビゲーションエリア分だけ、重ねているViewが上にずれたため、画面下部が選択できてしまっているように見えます。) お手数ですがよろしくお願いいたします。 ※追記 添付画像はLineアプリの画像であり、私が実装したものではありません。 例として、このようなダイアログを実装したいというものです。 記載している私のコードで実装した場合、スヌーピーの部分が暗くなりません。 そして選択できてしまいます。 正しいかわかりませんが、ナビゲーションエリアとステータスバーの高さ分だけ 上に重ねているViewの高さが画面下部に足りていないように見えます。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/ee923b67fa42d83c764e4c0bd202dbe7.png) 実装後のイメージを追加します。 タブ部分が選択できてしまいます。 追加 xib ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/82bae8603cd35e747ebd14f394dd6090.png) 指摘後追加
回答: addSubview =========== 今回の場合でしたら、TabBarControllerのviewか、Windowに乗せれば実現できると思います。 ``` //TabBarControllerに乗せる場合 self.tabBarController?.view.addSubview(infomationDialog) //Windowに乗せる場合 UIApplication.shared.keyWindow?.addSubview(infomationDialog) ``` サイズ設定 ====== ``` override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() if let window = UIApplication.shared.keyWindow { infomationDialog.frame = window.bounds } } ```