Подтвердить что ты не робот

Как получить высоту 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

4b9b3361

Ответ 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.