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

您的 ViewController 可能不会旋转,因为另一个控制器是第一响应者。避免这种情况的方法是将视图控制器注册到设备旋转更改,并在收到此类通知时在调用的选择器中实现旋转。
在应用程序委托中:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
Run Code Online (Sandbox Code Playgroud)
在你的视图控制器中
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:)name:UIDeviceOrientationDidChangeNotification object:nil];
Run Code Online (Sandbox Code Playgroud)
在旋转中,您可以检查方向
[[UIDevice currentDevice] orientation]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3286 次 |
| 最近记录: |