Ios UIStatusBar+;切换全帧视频+;旋转=框架问题

Ios UIStatusBar+;切换全帧视频+;旋转=框架问题,ios,video,screen-rotation,uistatusbar,Ios,Video,Screen Rotation,Uistatusbar,我的视频(AVPlayer实例)在一个较小的“最小化”窗口中开始播放。触摸屏幕以显示控件,并允许用户将其扩展到全屏,其中包括状态栏。我为viewController提供了以下完整帧: [[UIScreen mainScreen] bounds] 但是viewController仍然认为状态栏在那里,即使我先将其隐藏: [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimat

我的视频(AVPlayer实例)在一个较小的“最小化”窗口中开始播放。触摸屏幕以显示控件,并允许用户将其扩展到全屏,其中包括状态栏。我为viewController提供了以下完整帧:

[[UIScreen mainScreen] bounds]
但是viewController仍然认为状态栏在那里,即使我先将其隐藏:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]
因此,视频屏幕从看不见的状态栏下方(0,statusBarHeight)开始。如果在控件可见的情况下旋转设备(使状态栏可见),问题仍然存在。如果我在控件隐藏(状态栏丢失)时旋转设备,一切都会自动更正,视频窗口将按预期从(0,0)开始

我的解决方案是在(0,-statusBarHeight)启动全屏视频窗口,然后在没有控制的情况下观察旋转,然后将视频窗口放回原点。恶心

当我将视频最小化回原始大小时,如果在没有控件的情况下进行旋转,视频窗口将过高(statusBarHeight)像素

所以另一个布尔值告诉我,当我最小化视频时,我是否应该将它的“真实”位置纠正(0,+statusBarHeight)。双重恶心

如果,在这一点上,我们旋转设备,一切都很好。但如果我们立即最大化视频,则全屏视频的像素(statusBarHeight)过高。三重恶心

好吧,更多的布尔值,但视频引擎是一个独立的框架,而且“控制应用程序”也有类似的问题,这使得这一切变得复杂。。啊


我是不是走错了路?它变得太复杂和脆弱了。我知道(通过查看野外的其他应用程序)这是一个常见问题——我有一个显示相同行为的应用程序列表。有更好的方法吗?

我编写了一个非常简单的应用程序来重现这个问题,并用了一个“技术支持事件”来询问苹果的开发者技术支持。他们建议我提交一份bug报告(ID 12685127)。他们说:

AVPlayer绝对没有考虑状态栏

恐怕我看不到更好的解决办法,除了像你现在这样纠正这个问题