试图防止 iPhone 4 上的方向改变
Trying to prevent orientation change on an iPhone 4
我在 iOS 应用程序中遇到旋转(方向更改)问题。
该应用有多个视图控制器可供导航。
我希望它可以旋转,但 iPhone 4(3.5 英寸设备)除外。
在 3.5 英寸设备上,它应该始终保持纵向模式。
我能够防止直接旋转,即在视图控制器内时,如果用户以纵向模式握住设备而在横向模式下则什么也不会发生。这正是我想要的。
在横向模式下按住更改视图控制器时会出现问题。
在这种情况下,新的视图控制器以横向模式显示,我不希望那样。
我尝试使用
- (BOOL)shouldAutorotate;
当设备为 3.5 英寸但不起作用时返回 NO。
如何防止这种行为?
我可能需要补充一个细节:
我用来测试运行 iOS 版本 9.3.5.
的 3.5 英寸设备
我正在使用 Xcode 9.4.1.
您可以使用方法supportedInterfaceOrientations。
例如:
Objective c
-(UIInterfaceOrientationMask)supportedInterfaceOrientations
{
//return your preferred orientation
return UIInterfaceOrientationMaskPortrait;
}
您需要在 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 的 Deployment Info
中启用 Require Full Screen
。
我在 iOS 应用程序中遇到旋转(方向更改)问题。 该应用有多个视图控制器可供导航。
我希望它可以旋转,但 iPhone 4(3.5 英寸设备)除外。 在 3.5 英寸设备上,它应该始终保持纵向模式。
我能够防止直接旋转,即在视图控制器内时,如果用户以纵向模式握住设备而在横向模式下则什么也不会发生。这正是我想要的。
在横向模式下按住更改视图控制器时会出现问题。 在这种情况下,新的视图控制器以横向模式显示,我不希望那样。
我尝试使用
- (BOOL)shouldAutorotate;
当设备为 3.5 英寸但不起作用时返回 NO。
如何防止这种行为?
我可能需要补充一个细节: 我用来测试运行 iOS 版本 9.3.5.
的 3.5 英寸设备我正在使用 Xcode 9.4.1.
您可以使用方法supportedInterfaceOrientations。
例如:
Objective c
-(UIInterfaceOrientationMask)supportedInterfaceOrientations
{
//return your preferred orientation
return UIInterfaceOrientationMaskPortrait;
}
您需要在 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 的 Deployment Info
中启用 Require Full Screen
。