2015-05-27 2 views
2

Что такое высота modalPresentationStyle - FormSheet на iPad? Я написал строку кода, чтобы получить высоту self.view так:Что такое высота modalPresentationStyle - FormSheet на iPad?

println("Height - modalPresentationStyle FormSheet: \(self.view.frame.size.height)") 

Я получил эти два результата после тестирования:

Без Formsheet на ModalViewController, высота в 1024,0

С листом на modalPresentationStyle, высота в 1024,0, что неверно, поскольку высота должна быть меньше 1024,0

Любая идея, что в этом плохого? Мне нужно получить правильную высоту от self.view.frame.size.height с листом формы, потому что мне нужно написать формулу где-то в коде. Мне не нужно менять размер листа.

ответ

4

Не используйте ваш println внутри viewDidLoad, но внутри viewDidAppear.

Следующий класс, который представлен в раскадровке с Segue: Присутствует модально и Презентация: Форма листа дает различные результаты для того же println при вызове в viewDidLoad, viewWillAppear или 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 
    } 

} 
+0

Wow , Спасибо большое. Я даже не думал реализовать свой 'println' внутри' viewDidAppear'. Теперь он работает так хорошо. Еще раз спасибо! – hightech

+0

Ты прекрасна. Спасибо. – Neela

Смежные вопросы