Я разрабатываю свое первое приложение, используя AVPlayerViewController. Мне нужно отобразить видеопоток, используя этот класс внутри представления. На скриншоте этот вид имеет темно-синий цвет. В этом представлении у меня есть Label и UICollectionView. Когда я нажимаю на элемент, отображается видео, но есть проблема с размером этого вида, размер изменяется, метка под видом становится не видимой, также есть пробел в верхней части вида. Я использую AutoLayout для установки ограничений, и они правильные, XCode не показывает проблем с макетом, но после нажатия на элемент для запуска видео во время выполнения XCode показывает много ошибок с ограничениями. Вот так выглядит макет, никаких ошибок или предупреждений.
Так выглядит приложение при запуске
Это проблема с макетом, когда я нажимаю на элемент UICollectionView, как вы можете видеть, AVPlayer с контроллером не заполняет темно-синий вид (оставляет свободное место), а также меняет свой размер, поэтому метка не видна. Также не работают кнопки этого контроллера, появляется при нажатии на видео.
Это код, в котором я устанавливаю рамку для AVPlayerViewController, myView — это темно-синий вид.
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
let url = NSURL(string:"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8")
playerController.player = player
self.addChildViewController(playerController)
self.myView.addSubview(playerController.view)
playerController.view.frame = self.myView.frame
let playerItem = AVPlayerItem(URL: url!)
player.replaceCurrentItemWithPlayerItem(playerItem)
player.play()
}
Это ошибка в выводе после выполнения этого кода:
Невозможно одновременно удовлетворить ограничения. Вероятно, по крайней мере одно из ограничений в следующем списке вам не нужно. Попробуйте следующее: (1) посмотрите на каждое ограничение и попытайтесь выяснить, чего вы не ожидаете; (2) найти код, который добавил нежелательное ограничение или ограничения, и исправить его.