我有一个通用的 ipad/iphone 应用程序,允许用户观看视频,然后他们可以将其扩展到全屏模式。
我已经实现(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
了,在该方法中,我根据视图元素是横向还是纵向,对视图元素执行各种 setFrame 调用。
在正常使用中,这一切似乎都可以正常使用,即来回旋转可以正常工作。
但是如果用户以纵向模式开始,开始播放视频,进入全屏模式,变成横向,然后视频停止——元素通常没有正确调整大小。它们的大小似乎仍然像纵向模式一样。
如果我然后转到纵向模式,然后再转到横向,则视图会正确重置。
奇怪的是,我已经实现(void)exitedFullscreen:(NSNotification*)notification
并在其中打印出方向,并且可以正确看到。我还调用我的代码来根据当前方向重置视图元素,但我仍然遇到这个问题。
另一个相关问题是有时在处理旋转时,我的视图最终会在屏幕上太远,实际上位于设备顶部的状态栏下方。
编辑这是最新的例子。我在全屏视频播放期间旋转到横向模式,然后当我离开全屏视频时,您可以在视图顶部看到导航栏的问题。