尝试防止iPhone 4方向改变

时间:2018-09-04 09:56:33

标签: ios objective-c iphone-4 orientation-changes shouldautorotate

我在iOS应用中遇到旋转(方向更改)问题。 该应用程序具有多个用于浏览的视图控制器。

除了iPhone 4(3.5英寸设备)外,我希望它可以旋转。 在3.5英寸的设备上,应始终保持纵向模式。

我能够防止直接旋转,也就是说,在视图控制器内部时,如果用户以纵向模式握住设备而以横向模式握住设备,则什么也不会发生。这正是我想要的。

在保持横向模式的同时更改视图控制器时会出现问题。 在这种情况下,新的视图控制器将以横向模式显示,但我不希望这样。

我尝试使用

- (BOOL)shouldAutorotate;

当设备为3.5英寸但不起作用时返回NO。

如何防止这种行为?

我可能需要添加一个细节: 我用来测试的3.5英寸设备运行的是iOS版本9.3.5。

我正在使用Xcode 9.4.1。

2 个答案:

答案 0 :(得分:1)

您可以使用方法supportedInterfaceOrientations

例如:

目标c

jupyter kernelspec install .\newpackages\sas_kernel-2.1.7\sas_kernel

答案 1 :(得分:0)

您需要将此代码添加到 AppDelegate.m 中。 iPhone 4 / iPhone 4s的屏幕高度为480点。

Objective-C

- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window
{
    if(self.window.bounds.size.height > 500) {
        return (UIInterfaceOrientationMaskLandscape | UIInterfaceOrientationMaskPortrait);
    } else {
        return UIInterfaceOrientationMaskPortrait;
    }
}

您可能还需要在Target的Require Full Screen中启用Deployment Info