【发布时间】:2018-04-04 02:29:45
【问题描述】:
我有两种观点
一个是像这样的AVPlayerLayer的容器
containerView.layer.addSublayer(playerLayer)
containerView 有自己的关于 superview 的自动布局
self.view.addSubview(containerView)
containerView.leftAnchor.constraint(equalTo: self.view.leftAnchor).isActive = true
containerView.rightAnchor.constraint(equalTo: self.view.rightAnchor).isActive = true
containerView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true
containerView.heightAnchor.constraint(equalToConstant: 300).isActive = true
所以我覆盖viewDidLayoutSubviews()
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
playerLayer.frame = containerView.frame
}
第二个视图是容器视图上的自定义播放控制视图
containerView.addSubview(playBackControlView)
playBackControlView.leftAnchor.constraint(equalTo: containerView.leftAnchor).isActive = true
playBackControlView.rightAnchor.constraint(equalTo: containerView.rightAnchor).isActive = true
playBackControlView.topAnchor.constraint(equalTo: containerView.topAnchor).isActive = true
playBackControlView.bottomAnchor.constraint(equalTo: containerView.bottomAnchor).isActive = true
还有几个视图,例如UIButton、UISlider 等
这是我的问题
当我点击playBackControlView 上的一个按钮时,它调用enlargeScreenButton 如何使我的containerView、playBackControlView 和 AVPlayerLayer 像横向模式一样同时变成全屏
我已经阅读了this 的问题,但只有 playerLayer 发生了变化,而不是整个视图
(我不会旋转设备)
我在 Stackoverflow 上做了很多事情,但它们都适合我的情况
如果我转换一些视图被破坏并且如果我用UIScreen.main.bounds 改变框架也破坏了一些视图
【问题讨论】:
-
我不是说你不能做你正在做的事情,但为什么不使用AVPlayerViewController?它为你管理全屏。
标签: ios swift avplayer avplayerlayer avkit