一个Storyboard中iPhone和iPad的方向不同

4
我正在开发一款iOS应用程序,实际上是一个现有Web应用程序的封装。它添加了一些只能通过这种方式实现的附加功能。
我使用大小类和布局约束来设计应用程序。我在iPhone和iPad上都使用了一个storyboard。问题在于,我希望iPhone应用程序只能使用纵向模式,而iPad只能使用横向模式(存在针对iPhone和iPad优化的不同Web应用程序)。
是否可能只使用一个storyboard来完成此操作,或者我需要使用两个storyboard(一个用于iPhone,设置为仅限纵向;另一个用于iPad,设置为仅限横向),从而复制我的设计?
3个回答

4
打开info.plist文件,将其以代码形式粘贴以下代码:
<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>

对我来说很有效!


2

在iOS8中,有一个非常令人兴奋的功能叫做自适应布局(Adaptive Layout),通过它,相同的故事板现在可以在运行iOS 8的iPads和iPhones上使用。无需使每个设备的故事板保持同步。

这是一份非常好的教程,它会帮助你理解更多。


谢谢您的回答!我知道这个功能,但问题如下。在iPhone上,我只想允许纵向方向,而在iPad上只允许横向方向。由于这是在项目的主设置中按故事板设置的,我不确定该怎么做? - Flock Dawson
嗯,我建议您使用xib文件而不是故事板,因为在xib中很容易控制这种情况。 - Irfan

-1

只需将此代码粘贴到您的应用程序委托中:

- (NSUInteger)application:(UIApplication *)application
supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
        return UIInterfaceOrientationMaskLandscape;
    else
        return UIInterfaceOrientationMaskPortrait;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接