横向,半视图。迅速

时间:2014-12-04 23:09:42

标签: ios image swift view

我的应用程序在纵向方向上工作正常,但当我转向横向模式时,我看到白色正方形半视图。

http://screenshot.cz/22XZB/sss.png

有什么问题?

电影播放器​​代码

    moviePlayer = MPMoviePlayerController(contentURL: stream)
    moviePlayer.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height)
    moviePlayer.view.sizeToFit()
    self.view.addSubview(moviePlayer.view)
    moviePlayer.fullscreen = true
    moviePlayer.controlStyle = MPMovieControlStyle.Embedded
}

2 个答案:

答案 0 :(得分:2)

当超级视图的界限发生变化时,您需要调整moviePlayer的大小。

一种解决方案是移动这一行:

moviePlayer.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height)

进入viewWillLayoutSubviews(如果这是一个视图控制器子类)或layoutSubviews(如果这是一个视图子类)。

另一种方法是使用自动布局而不是手动布局。

答案 1 :(得分:0)

当您没有使用autolayout时,您必须在方向完成后更新视图框架,为此您可以使用方法

override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {

}

每次完成方向更改时都会调用此方法,您可以在此处根据需要更新或设置视图。

  

另一种方法是使用非常有效的Autolayout。