如何设计一个 iOS 应用程序,它在 ipad 中只能以横向模式运行,在 iPhone 中只能以纵向模式运行?

How to design an iOS app which runs only in landscape mode in ipad and portrait in iPhone?

我是 iOS 的新手 development.I 我正在制作一个在 iPad 上运行的应用程序 iPhone.I 我正在使用通用 storyboard.I 想要 phone 仅在纵向模式下工作,iPad 仅在横向模式下工作 mode.How 为 ipad 横向设计?我们可以旋转故事板和设计吗?另外,请告诉我如何为 iPad.Thank 锁定界面方向锁 您 advance.I 需要 objective-C 代码。

在这种情况下,您需要创建两个不同的故事板。一份用于 iphone 一份用于 ipad.

要进行横向/纵向设计,您需要进行以下设置。

首先转到你的故事板。 Select viewController -> 属性检查器 -> 模拟指标 -> 方向 -> 更改为横向/纵向。

在您的目标中,将 iPad 的设备方向设置为横向左和横向右,为 iphone 设置纵向。

另外告诉我你在故事板中使用导航控制器吗???

觉得有用请点个赞。

您可以为您的视图控制器创建一个子类,您可以在下面覆盖此方法。这将为 iPad 启用横向,为 iPhone 启用纵向。

我创建了一个 UIViewController 的子类,并在子类中实现了这个方法,然后我将在整个项目中继承 MySubclassViewController。

// iOS6+
// MySubclassViewController.m
@interface MySubclassViewController : UIViewController
@end

/*  Doc:
    This method is only called if the view controller's 
    shouldAutorotate method returns YES.
 */
-(NSUInteger)supportedInterfaceOrientations{
    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
        /* iPad device */
        return UIInterfaceOrientationMaskLandscape;
    }else{
        /* iPhone device */
        return UIInterfaceOrientationMaskPortrait;
    }
}

- (BOOL)shouldAutorotate {
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        return YES;
    }
    return NO;
}

将其放入您的视图控制器中,相应地安排 return 类型,我现在无法访问我的旧代码。

-(BOOL)isPad
{
#ifdef UI_USER_INTERFACE_IDIOM
    return UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad;
#endif
    return NO;
}

-(BOOL)shouldAutorotate
{
    return NO;
}

-(NSUInteger)supportedInterfaceOrientations
{
    if([self isPad]){
        return UIInterfaceOrientationMaskLandscape;
    }
    else{
        return SOMETHING_ELSE;
    }
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    if([self isPad]){
        return return UIInterfaceOrientationLandscapeRight;
    }
    else{
        return SOMETHING_ELSE;
    }
}

在 Info.Plist 文件中,添加两行,如 picture.Uncheck 所示

中的所有方向
Target--->General--->Deployment info.