我们的应用程序的设备方向只有肖像,但有一个视频播放器视图需要旋转到横向和向后旋转;supportedInterfaceOrientationsForWindow似乎不再起作用了吗?
我尝试使用supportedInterfaceOrientationsForWindow方法在AppDelegate中,但似乎不工作了?
Xcode的8.3.3,iOS的10.3.2,部署TARGIT是8.0。
我需要将代码粘贴?
我们的应用程序的设备方向只有肖像,但有一个视频播放器视图需要旋转到横向和向后旋转;supportedInterfaceOrientationsForWindow似乎不再起作用了吗?
我尝试使用supportedInterfaceOrientationsForWindow方法在AppDelegate中,但似乎不工作了?
Xcode的8.3.3,iOS的10.3.2,部署TARGIT是8.0。
我需要将代码粘贴?
如果你正在做使用window
方法参数,请尝试使用self.window
代替。在轮换期间,window
是_UIInteractiveHighlightEffectWindow
,可能不是您所需要的。
我在supportedInterfaceOrientationsForWindow
代码返回取决于哪个视图控制器是可见的不同UIInterfaceOrientationMask
值。在从纵向视图控制器到横向视图控制器的细分过程中,在window
方法参数上查找可见视图控制器时,可见视图控制器始终是不带导航控制器,父视图控制器,子视图控制器或子视图的通用UIViewController
类。
当使用self.window
代替,可见视图控制器是一个I预期(即需要景观要显示的视图控制器中的一个)。
这里的window
和self.window
之间的差的一个例子,当旋转期间调用的方法:
(lldb) po window.debugDescription
"Optional(<_UIInteractiveHighlightEffectWindow: 0x106325960; frame = (0 0; 667 375); hidden = YES; gestureRecognizers = <NSArray: 0x1c4444a40>; layer = <UIWindowLayer: 0x1c4235c60>>)"
(lldb) po self.window.debugDescription
"Optional(<UIWindow: 0x106409840; frame = (0 0; 667 375); autoresize = W+H; gestureRecognizers = <NSArray: 0x1c0054c40>; animations = { position=<CABasicAnimation: 0x1c02323c0>; bounds.origin=<CABasicAnimation: 0x1c0232480>; bounds.size=<CABasicAnimation: 0x1c02324a0>; }; layer = <UIWindowLayer: 0x1c0223a00>>)"