gpt4 book ai didi

当您有不同的方向屏幕时,iOS 自动旋转不起作用

转载 作者:行者123 更新时间:2023-12-01 16:22:55 24 4
gpt4 key购买 nike

我正在开发一个用 Objective-C 编写的应用程序。我有更多屏幕,所有屏幕都是横向左和横向右方向,这些屏幕不能处于纵向模式。但是我有 3 个不同的屏幕,它们应该只处于纵向模式,不能处于横向左侧或横向右侧。

这是所有屏幕的横向模式代码-

This is the code for Landscape mode for all screens

这是我的应用程序的纵向模式

Portrait mode

这些都是我在 View Controller 和应用程序 Plist 中所做的一切,我添加了所需的方向,如 Info.plist
Plist info

并且应用设备方向会自动改变。像这样 -
Device orientation .

我很确定一切都很清楚,应该可以按预期工作,但是由于某种原因,当我使用该应用程序并锁定自动旋转并运行该应用程序时,它会自动以纵向模式打开,而当我解锁自动旋转时,它将处于横向模式并且您旋转它将旋转到纵向模式。我使用 shouldAutorate 返回 YES 因为它应该在横向左侧和横向右侧之间自动旋转它所以我也使用它纵向模式屏幕以纵向打开但当用户旋转设备时它会自动旋转。

任何帮助将不胜感激,请分享为什么我的应用程序无法按预期工作的任何想法。

最佳答案

以下是解决此问题的步骤:

  • 从 plist 中删除方向,因为它会覆盖 View Controller 中的任何逻辑。
  • 保持下面的代码,你有横向方向:
    -(BOOL)shouldAutorotate {
    return YES;
    }

    -(NSUInteger)supportedInterfaceOrientations
    {
    return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
    }
  • 对于纵向模式,请按如下方式使用:
    -(BOOL)shouldAutorotate {
    return YES;
    }
    -(NSUInteger)supportedInterfaceOrientations
    {
    return UIInterfaceOrientationMaskPortrait;
    }

  • 现在尝试锁定方向,您的第一个 View Controller 将出现在横向,而另一个 View Controller 将是纵向,无论方向锁定如何。

    关于当您有不同的方向屏幕时,iOS 自动旋转不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49110986/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com