iPad 上 modalPresentationStyle - FormSheet 的高度究竟是多少?

hig*_*ech 2 modalviewcontroller ios swift

iPad 上 modalPresentationStyle - FormSheet 的高度究竟是多少?我写了一行代码来获取 self.view 的高度,如下所示:

println("Height - modalPresentationStyle FormSheet: \(self.view.frame.size.height)")
Run Code Online (Sandbox Code Playgroud)

经过测试,我得到了这两个结果:

ModalViewController 上没有 Formsheet,高度为1024.0

在 modalPresentationStyle 上使用 Formsheet 时,高度为1024.0 ,这是错误的,因为高度应该小于 1024.0

知道它有什么问题吗?我需要使用表单从 self.view.frame.size.height 中获得正确的高度,因为我需要在代码中的某处编写公式。我不需要更改表单的大小。

Ima*_*tit 5

不要实现你的printlninsideviewDidLoad而是 inside viewDidAppear

在带有Segue的 Storyboard 中呈现的以下类:Present ModallyPresentation:Form Sheetprintln在调用时给出不同的结果viewDidLoadviewWillAppear或者viewDidAppear

class ViewController2: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        println(view.frame) // (0.0, 0.0, 768.0, 1024.0)
    }

    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
        println(view.frame) // (0.0, 0.0, 768.0, 1024.0)
    }

    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        println(view.frame) // (0.0, 0.0, 540.0, 620.0) // Correct values
    }

}
Run Code Online (Sandbox Code Playgroud)