为什么我的约束在swift/storyboard中无法正常工作?

问题描述:

我使用player-swift(即:https://github.com/piemonte/Player)在我的应用程序中显示视频内容。我创建了一个UIViewController,并在那里添加了一个view并将其分配给它,称为PlayerView。到现在为止还挺好。为什么我的约束在swift/storyboard中无法正常工作?

在我的代码开始,如下所示:现在

self.videoPlayer = Player() 
self.videoPlayer.delegate = self 
self.videoPlayer.view.frame = myVideo.bounds 

self.addChildViewController(self.videoPlayer) 
myVideo.addSubview(self.videoPlayer.view) 
self.videoPlayer.didMoveToParentViewController(self) 
    let tapGestureRecognizer: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTapGestureRecognizer(_:))) 
    tapGestureRecognizer.numberOfTapsRequired = 1 
    self.videoPlayer.view.addGestureRecognizer(tapGestureRecognizer) 

self.videoPlayer.fillMode = "AVLayerVideoGravityResizeAspectFill" 

self.videoPlayer.setUrl(url) 

self.videoPlayer.playFromBeginning() 
self.videoPlayer.playbackLoops = true 

,因为我打的视频格式480×640(肖像模式),我认为有关分配以下限制:

enter image description here

enter image description here

而现在,当我打开它在iPhone 6S再加上,我看到:

enter image description here

如此 - 因为我把尾随的空间为0 - 为什么还是有这个白色条纹在屏幕的右侧?

在另一方面,适用于iPhone 4s,视频裁剪:

enter image description here

,并在iPhone 6是罚款:

enter image description here

什么样的约束我应该应用,以便它在每台设备上都与iPhone 6上相同?我只是希望它被水平拉伸,然后垂直长度应该自动调整(使长宽比保持在480x640)

=================== ===========================

伙计们,正如我在下面的评论部分写的 - 当我删除播放器并保持正常用相同的约束来观察 - 一切都有效,所以它必定是一个球员本身的错误......你能帮我区分哪里可能是错的吗?

==============================================

在我的Storyboard中,我将颜色playerView设置为浅灰色。我再次运行模拟器,我看到:

enter image description here

这意味着有存储播放器视图自身的一些其他层。我通过插件的代码去,发现这个:

public override func loadView() { 
    self.playerView = PlayerView(frame: CGRectZero) 
    self.playerView.fillMode = AVLayerVideoGravityResizeAspect 
    self.playerView.playerLayer.hidden = true 
    self.view = self.playerView 
} 

这里https://github.com/piemonte/Player/blob/master/Sources/Player.swift

,所以我想我需要建立某种程度上的制约:self.playerView.playerView。但我该怎么做呢?

+0

你在哪里调用你的代码? viewDidLoad中? – BJHStudios

+0

是的,视图确实加载了,我想也许我应该以某种方式设置来自代码而不是故事板的约束,但仍然...如果我将其设置在故事板本身上,它应该没问题(在我看来)。 。 – randomuser1

+0

该视图尚未在viewDidLoad中设置其大小。尝试调用从viewDidAppear,看看它是否表现不同 – BJHStudios

约束到侧边必须是-20这样的视频会出现全屏,0离开额外的空间,你可以看到这一点,如果你拖动以保证金的边缘,我会推荐给Ctrl拖动以主视图和等宽度为他的超级视图

+0

@LuizPerez我只是增加了一些更多的信息,我的主要问题,你可以看看,并告诉我,是否可能是正确与否,以及如何我应该继续吗? – randomuser1

+0

好吧,让我直截了当地说,你是在主视图中添加玩家视图吧?你可以设置从故事板的宽度,只需按Ctrl +从播放器视图拖动到主视图,并选择相等的宽度,现在如果玩家在一个子视图中,并且玩家本身是另一个视图,意味着你有3个图层是正确的? (mainView,childView和playerView),告诉我这是否正确 –

+0

所以这是它的外观:http://imgur.com/IFSI1VS所以好像我有2层,我不知道如何达到第三个(玩家自己存储的确切位置)... – randomuser1