我想知道如何旋转设备,即使用户在iPhone打开肖像方向锁定。就像亚马逊黄金视频应用程序一样,通常我看到应用程序是竖屏的,但是当我开始看电影时,即使我打开肖像方向锁定,应用程序也会将其旋转变为水平。
当我在谷歌上搜索时,我只找到了这篇文章,但使用CoreMotion是实现我想要做的事情的唯一方法??
我使用以下代码从本文中旋转设备,
struct AppUtility {
static func lockOrientation(_ orientation: UIInterfaceOrientationMask) {
if let delegate = UIApplication.shared.delegate as? AppDelegate {
delegate.orientationLock = orientation
}
}
/// OPTIONAL Added method to adjust lock and rotate to the desired orientation
static func lockOrientation(_ orientation: UIInterfaceOrientationMask, andRotateTo rotateOrientation:UIInterfaceOrientation) {
self.lockOrientation(orientation)
UIDevice.current.setValue(rotateOrientation.rawValue, forKey: "orientation")
UINavigationController.attemptRotationToDeviceOrientation()
}
}
但该应用程序不会自动从纵向旋转到横向(从横向到纵向工作...),但当我用手将设备从纵向旋转到横向时,应用程序的视图会旋转。
那么,当我进入特定的视图控制器时,如何使设备旋转到横向?(就像prime视频应用程序一样,当我开始看电影时,会自动将方向转向横向)
在AppServer下面的变量中锁定所有具有给定方向的控制器
var orientationLock = UIInterfaceOrientationMask.portrait
现在在AppDelegate中实现以下方法
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return self.orientationLock
}
在单独的助手文件中写入这些方法
static func lockOrientation(_ orientation: UIInterfaceOrientationMask) {
if let delegate = UIApplication.shared.delegate as? AppDelegate {
delegate.orientationLock = orientation
}
}
static func lockOrientation(_ orientation: UIInterfaceOrientationMask, andRotateTo rotateOrientation:UIInterfaceOrientation) {
lockOrientation(orientation)
UIDevice.current.setValue(rotateOrientation.rawValue, forKey: LocalizedKey.orientation.string)
}
在特定控制器的viewWillAppear()中调用此方法
override func viewWillAppear(_ animated: Bool) {
Helpers.lockOrientation(UIInterfaceOrientationMask.landscape,
andRotateTo: UIInterfaceOrientation.landscapeLeft)
}
注意:LocalizedKey.orientation.raw值是单独文件中的字符串,其值为“方向”
setPrintedPortrait(): self 实例 $config = ['path' => './tests']; $excel = new \Vtiful\Kernel\Excel($config); $excel->fileName('printed_portrait.xlsx', 'sheet1') ->setPrintedPortrait() // 设置打印方向为
我正在开发一个Android相机api应用程序,它被锁定在清单文件的竖屏中。 我的问题是,当我存储图片时,它们都以相同的方向存储。 我希望它们以真实的方向存储,例如,我的天花板应该位于存储图片的顶部,无论我如何定位手机,如果这有意义的话 为了做到这一点,我必须知道设备的方向,然而,当应用程序锁定在纵向时,所有getOrientation的方法都认为我的手机处于纵向模式,无论我手机的物理方向如何。
我不希望我的应用程序被美化并始终是porttrait。所以我让我的应用程序部署信息仅设置纵向。但是当我需要在我的应用程序中显示任何图像或视频时,我需要横向模式才能更好地显示。 我可以通过检测设备方向的变化 但是,即使应用程序部署信息肖像被锁定,我如何手动更改设备方向? 这不起作用
我正在构建一个应用程序,它依赖于显示从相机拍摄的许多位图图像。我希望所有图像都以90度(纵向)的方向显示,我知道如何使用每个图像提供的EXIF信息来实现这一点。在拍摄图像后立即旋转图像的位图以满足我的需要,然后将其发送到我的服务器,这对我来说是一个更好的主意,还是应该在不旋转图像的情况下将图像发送到我的服务器,然后每当我下拉图像时,使用图像附带的EXIF旋转来旋转我正在显示的图像视图?我需要一个高
setPrintedLandscape(): self 实例 $config = ['path' => './tests']; $excel = new \Vtiful\Kernel\Excel($config); $excel->fileName('printed_landscape.xlsx', 'sheet1') ->setPrintedLandscape() // 设置打印
背景 我正在尝试使用LWJGL 3.0在Java中创建一个FPS游戏。我已经设置了一个camera类,它具有俯仰和偏航(roll未被使用)。相机本身扩展实体,因为它有一个模型。无论相机指向哪里,我都希望这个模型始终显示在相机的“前方”。每个实体都有一个方法getTransformationMatrix(),该方法返回一个矩阵4f,然后将其传递到实体着色器。 问题 模型需要指向相机的方向,以及围绕相