我希望一个应用程序保持相同的用户界面,不管设备的方向是什么。我不想在支持多个设备方向时使用默认行为,即每次方向更改时UI都会自动滑动/移动。但是,我还想检测方向是什么,以便执行一些自定义代码。
- 当Info.plist中的supportedDeviceOrientations设置为only portrait时,似乎不会发送UIDevice.orientationDidChangeNotification。
- 覆盖supportedInterfaceOrientations似乎没有做任何事情。
有没有一种方法可以在Info.plist中只允许一个设备方向的情况下获得设备方向的信息(它现在应该是横向的)?
2条答案
按热度按时间piv4azn71#
您需要做的是更新您的Info.plist以支持所有方向。
然后在根视图控制器中覆盖
supportedInterfaceOrientations
:这将使您的视图控制器保持在纵向,而不管设备方向如何,但它也允许设备方向更改通知仍然在设备方向更改时发送。
这假设iPhone上未启用旋转锁定。如果用户锁定旋转,则应用根本无法获得设备方向更改通知。但这基本上就是旋转锁的重点。
czq61nw12#
假设你在@hangarrash回答的地方,要检测iPhone的方向,你可以使用NotificationCenter和一些合并发布器。