当前位置: 首页 > 知识库问答 >
问题:

如何将视图从竖屏更改为横向模式并锁定它?

王兴腾
2023-03-14

我有一个电影视图压缩在右下视口与肖像模式。当用户展开电影视图时,电影视图将以横向模式扩展到全屏。我还想在全屏时将电影视图锁定为横向模式,无论设备的方向如何。

注意:我所有的其他视图都是竖屏的。

我用这个代码引用了这篇文章,

应用程序设置,

AppDelegate。敏捷的

internal var shouldRotate = false

func application(_ application: UIApplication,
                 supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
    return shouldRotate ? .allButUpsideDown : .portrait
}

查看控制器,

func expandPlayerWindow(button: UIButton) {
    self.player.view.frame = CGRect(x:0, y:-20, width: UIScreen.main.bounds.maxY, height: UIScreen.main.bounds.maxX)
    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    print(appDelegate.shouldRotate)
    print(self.supportedInterfaceOrientations)
    appDelegate.shouldRotate = true // or false to disable rotation
    let value = UIInterfaceOrientation.landscapeLeft.rawValue
    UIDevice.current.setValue(value, forKey: "orientation")
    print(appDelegate.shouldRotate)
    print(self.supportedInterfaceOrientations)
    appDelegate.shouldRotate = false
    print(appDelegate.shouldRotate)
    print(self.supportedInterfaceOrientations)
    UIApplication.shared.isStatusBarHidden = false
}

日志

false
UIInterfaceOrientationMask(rawValue: 26)
true
UIInterfaceOrientationMask(rawValue: 26)
false
UIInterfaceOrientationMask(rawValue: 26)

在设置方向之前,我将应旋转设置为true,这个make视图可以更改为横向模式。设置方向后,我将应旋转设置为false以禁用旋转。然后我测试它,当我单击按钮时,电影视图更改为横向,之后我旋转我的设备,电影视图更改为纵向,并锁定为竖屏而不是横向模式。

共有1个答案

东郭鸿福
2023-03-14

这是由这个函数引起的,

func application(_ application: UIApplication,
                 supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
    return shouldRotate ? .allButUpsideDown : .portrait
}

. allButUpside Down更改为。景观就可以了。

可行规范,

AppDelegate。敏捷的

func application(_ application: UIApplication,
                 supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
    return shouldRotate ? .landscape : .portrait
}

查看控制器,

func expandPlayerWindow() {
    self.player.view.frame = CGRect(x:0, y:-20, width: UIScreen.main.bounds.maxY, height: UIScreen.main.bounds.maxX)
    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    appDelegate.shouldRotate = true // or false to disable rotation
    let value = UIInterfaceOrientation.landscapeLeft.rawValue
    UIDevice.current.setValue(value, forKey: "orientation")
    appDelegate.shouldRotate = true
    UIApplication.shared.isStatusBarHidden = true
}
 类似资料:
  • 给定一个包含纵向页面的现有 PDF 文件,我该如何以编程方式(使用 .NET)处理该文件,以便在横向页面上生成具有相同内容的新文件。 新页面应该充分利用可用的横向宽度。页面数量可能会增加,因为现有的纵向页面可能不适合一个横向页面。 背景故事:我们使用Google Sheets REST API来生成pdf文档。如果有很多列,文档可能会很宽。不幸的是,Google Drive REST API总是以

  • 问题内容: 我在人像模式(不是全屏)上播放视频(在上),并且当我切换到 横向模式下视频停止。 当我将其更改为横向时,该视频将全屏显示并继续播放。 有什么建议吗? 问题答案: 您需要做的就是将其添加到AndroidManifest.xml中的活动中: 您的视频活动应如下所示。 如果你的目标API等级13以上,你必须包括除了价值所描述的价值在这里。您的视频活动应如下所示。 然后将以下方法添加到Vide

  • 我目前正在开发一个志愿者登录应用程序,需要防止任何试图篡改计算机的行为。首先,我很容易地将应用程序设置为全屏。然后我尝试将窗口的exit键组合设置为null,但在这种情况下JavaFX自动默认为escape键。我将有一个管理部分,该程序可以退出使用密码。是否有任何方法可以有效地拦截退出JavaFX应用程序全屏状态的任何可能方法,或者更好的方法是暂时挂起/锁定其他操作系统功能? 编辑——使用组合键。

  • 我完成了我的iOS应用程序,但我只需要将一个视图设置为横向模式,其余的视图只能在竖屏中看到。 我使用的是Xcode 5.1,我通过从右侧面板中插入情节提要视图控制器创建了所有视图,因此如果您要告诉我在什么地方编写代码,请确切告诉我需要在哪里编写。 我在这里读到了一个解决方案UINavigationController强制旋转,但我不知道该在哪里编写代码。是否需要手动创建一个UIViewContro

  • 问题内容: 由于我的应用程序支持所有方向。我只想将肖像模式锁定到特定的UIViewController。 例如,假设它是“选项卡式应用程序”,并且当SignIn View模态显示时,无论用户如何旋转设备或当前设备的方向如何,我都只希望SignIn View进入纵向模式 问题答案: 当您具有复杂的视图层次结构时,事情会变得很混乱,例如具有多个导航控制器和/或选项卡视图控制器。 此实现将其置于各个视图

  • 本文向大家介绍Android编程判断横屏、竖屏及设置横竖屏的方法,包括了Android编程判断横屏、竖屏及设置横竖屏的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程判断横屏、竖屏及设置横竖屏的方法。分享给大家供大家参考,具体如下: 还是这个手机项目,有一个需求是整个工程中只有刚进去的界面允许横屏显示,并且要将该界面的标题隐藏,当切换回竖屏显示的时候,标题变为可见,一