Как получить высоту topLayoutGuide?
moviePlayer = MPMoviePlayerController(contentURL: url)
moviePlayer.view.frame = CGRect(x: 0, y:{layoutguide.height}, width:
self.view.frame.width, height: 300)
self.view.addSubview(moviePlayer.view)
viewcontroller имеет атрибут с именем "topLayoutGuide", но, похоже, я этого не хотел.
Я знаю, как реализовать в раскадровке в коде, я не могу получить высоту руководства Top Layout. Я искал часы, ничего не получая.
![enter image description here]()
![enter image description here]()
Ниже требуется.
![enter image description here]()
Ответы
Ответ 1
Вы можете получить значение topLayoutGuide в качестве свойства length
:
// Inside your viewController
self.topLayoutGuide.length
Так как это одно значение (т.е. оно не имеет высоты и ширины), они просто называют его length
. То же самое верно для bottomLayoutGuide.
Надеюсь, что это поможет
Еще одно замечание в яблочном документе для этого свойства:
//В качестве вежливости, когда вы не используете автоматическую компоновку, это значение безопасно ссылаться на -viewDidLayoutSubviews или в -layoutSubviews после вызова super
Использование этого свойства в этих двух функциях даст вам точное значение, так как макет был инициализирован. Если вы используете его в функции viewDidLoad
, это свойство будет равно 0.
Ответ 2
Если кто-то ищет, как вычислять высоту вложений SafeLayoutGuide, доступную для iOS 11, потому что руководство Top и Bottom Layout Guide устарело, вы можете найти его в:
view.safeAreaInsets
Обратите внимание, что руководство Top и Bottom Layout Guide входит в состав ViewController, и теперь SafeLayoutGuide является частью основного вида ViewController.