前提・実現したいこと
FirstViewControllerにモーダル形式でSecondViewControllerを表示させようとしています。
SecondViewControllerは
modalPresentationStyle = .pageSheetの表示形式で追加し、
表示範囲の下限ギリギリのところにviewを配置したいのですが、
SecondViewControllerの表示領域の高さの取得方法が分からず、
toolbar.frameのYが設定出来ず困っております。
下記図の青色の線、または黄色の線の高さはどのように取得する方法すればよろしいでしょうか?
初心者の質問で申し訳ないのですが、ご教授いただけると幸いです。
(図は、記載したソースコードを実行したものに、
イメージを分かりやすくするために↕︎と注釈を追記したものです。)
該当のソースコード
swift
1import UIKit 2 3class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view. 8 let btn = UIButton() 9 btn.frame = CGRect(x:0,y:0,width:100,height:100) 10 btn.backgroundColor = .green 11 btn.addTarget(self, action: #selector(btn_tapped), for: .touchUpInside) 12 self.view.addSubview(btn) 13 print("シミュレーターの画面の高さ", self.view.frame.height) 14 } 15 16 @objc func btn_tapped(){ 17 let secondVC = SecondViewController() 18 secondVC.view.backgroundColor = .white 19 secondVC.modalPresentationStyle = .pageSheet 20 self.present(secondVC, animated: true, completion: nil) 21 } 22 23} 24 25//--------------------------------------------------------------- 26 27class SecondViewController:UIViewController { 28 29 let footerView = UIView() 30 31 override func viewDidLoad() { 32 let viewHei:CGFloat = 44 33 footerView.frame = CGRect(x: 0, y: self.view.frame.size.height - viewHei, 34 width: self.view.frame.size.width, height: viewHei) 35 footerView.backgroundColor = .red 36 self.view.addSubview(footerView) 37 38 viewHeiGet() 39 } 40 41 func viewHeiGet(){ 42 print("test1 (狙い:図の青色の線の長さ)", self.view.frame.height) 43 print("test2 (狙い:図の黄色の線の長さ)", self.view.frame.minY) 44 } 45 46}
試したこと
各print()の結果
シミュレーターの画面の高さ 568.0
test1 (狙い:図の青色の線の長さ) 568.0
test2 (狙い:図の黄色の線の長さ) 0.0
回答2件
あなたの回答
tips
プレビュー