我知道'最佳做法'是一个stackoverflow禁忌,但我无论如何都给它一个镜头,因为我认为这很重要,并要求一个特定的答案。自动布局是新的,随着最近宣布的iPad并排多任务处理,自动布局的细微差别从未如此重要。
我的情况:我的应用会有两个列表。在iPhone上,它们一次只能查看一个。我可以做到这一点:
我的具体问题:在iPad上,我希望两个列表同时并排显示。 iPhone和iPad都只能以纵向运行应用程序(不支持横向)我看到了一些提供并排视图的选项:
我非常感谢如何实现此功能的答案。虽然我理解每个选项的概念,但我不了解具体的步骤/代码,因此我们将不胜感激。谢谢。
答案 0 :(得分:1)
我在我的应用程序中有这个确切的场景,我使用了选项#2。
对于iPad,它将使用w-Regular h-Regular尺寸等级。 这个site对大小类有很好的视觉和解释。
将VC链接到容器视图。按住Ctrl键从Container拖动到VC以创建嵌入segue。您还希望添加代码,以便在iPad上仅使用此嵌入式segue。通过在IB中选择segue并转到Attributes Inspector,为segue提供标识符。在下面的示例代码中,我调用了segue EmbedSegueName。
- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad && [identifier isEqualToString:@"EmbedSegueName"]) {
return YES;
}
return NO;
}
不允许访问第二个VC。我不知道你是如何在iPhone上显示两个不同的VC的,但在我的应用中我使用的是UITTabBarController
。这就是我从应用程序的iPad标签栏中删除额外VC的方法。
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
// Remove the tab bar item because it will be contained in the iPad's layout.
// In this example, it's removing the 2nd tab bar item.
NSMutableArray *viewControllers = [NSMutableArray arrayWithArray:[self.tabBarController viewControllers]];
[viewControllers removeObjectAtIndex:1];
[self.tabBarController setViewControllers:viewControllers animated:YES];
}
提示:如果您遇到运行iPhone版本的错误,并且抱怨容器视图(即使它没有安装在iPhone的大小上)类),尝试将Container View放入另一个视图,看看是否能解决问题。
我希望这足以让你开始。