2016-04-28 2 views
0

Here is my simulatorВид изнутри съела ту же позицию

Вот мой код:

player = AVPlayer(URL: url!) 

     layer.player = self.player 

     layer.frame = CGRectMake(self.videoView.frame.origin.x, self.videoView.frame.origin.y, self.videoView.frame.width, self.videoView.frame.height) 

     print(self.videoView.frame.origin.x) //67 
     print(self.videoView.frame.origin.y) //37 

     layer.backgroundColor = UIColor.clearColor().CGColor 
     layer.videoGravity = AVLayerVideoGravityResizeAspectFill 

     self.videoView.layer.addSublayer(layer) 

     player.play() 

VideoView является в Greenview на моем раскадровки, я хочу поставить видео на том же самом положении зеленого зрения

ответ

1

Изменить следующую строку

layer.frame = CGRectMake(0, 0, self.videoView.frame.width, self.videoView.frame.height) 

Создание происхождения 0,0 зафиксирует у наша проблема. Помните, что происхождение основано на верхнем левом углу SUPERview. поэтому avPlayer.frame должен отличаться от фрейма videoFrame, потому что у них разные наблюдения.

0

Я не понял правильно, что вы хотите, но при условии, что вы хотите поместить слой в одно и то же положение видеовидео.

layer.frame = CGRectMake(0, 0, self.videoView.frame.width, self.videoView.frame.height) 

Почему?

У нас есть границы и рамки в iOS. Они почти одинаковы, оба прямоугольника выражены как местоположение: (x, y) и размер (ширина, высота). Но:

  • Bounds по сравнению с его собственной системой координат (0,0);
  • Рамки относятся к надписи;

Вы устанавливаете слой к вашему VideoView, из-за этого VideoView является SuperView слоя, так что вы должны установить в кадре х = 0 и у = 0.

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