Ios 如何为iPad横向和纵向模式设计不同的布局?

Ios 如何为iPad横向和纵向模式设计不同的布局?,ios,ipad,uiinterfaceorientation,size-classes,adaptive-layout,Ios,Ipad,Uiinterfaceorientation,Size Classes,Adaptive Layout,我正在为iPad和iPhone设备开发一款支持横向和纵向模式的通用应用程序。在横向中,除了纵向模式中的按钮外,它还有更多的按钮 对于iPhone,我能够使用故事板设计不同的布局,它在wC | hC、wC | hR、wR | hC中的效果与预期一样 但就iPad而言,我无法设计不同的布局,因为横向和纵向尺寸等级都是相同的wR | hR 我引用了讨论的解决方案@,并尝试使用以下代码: override func overrideTraitCollectionForChildViewControlle

我正在为iPad和iPhone设备开发一款支持横向和纵向模式的通用应用程序。在横向中,除了纵向模式中的按钮外,它还有更多的按钮

对于iPhone,我能够使用故事板设计不同的布局,它在wC | hC、wC | hR、wR | hC中的效果与预期一样

但就iPad而言,我无法设计不同的布局,因为横向和纵向尺寸等级都是相同的wR | hR

我引用了讨论的解决方案@,并尝试使用以下代码:

override func overrideTraitCollectionForChildViewController(childViewController: UIViewController) -> UITraitCollection? {
    if UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad &&
        view.bounds.width > view.bounds.height {

        let collections = [UITraitCollection(horizontalSizeClass: .Regular),
                           UITraitCollection(verticalSizeClass: .Compact)]
        return UITraitCollection(traitsFromCollections: collections)

    }
    return super.overrideTraitCollectionForChildViewController(childViewController)
}
但是这个代码从未被调用过。实现这一目标的更好方法应该是什么


由于苹果本身在横向和纵向上为iPad提供了相同的尺寸等级,以编程方式更改iPad的特性会对应用程序审批流程产生影响吗。

您是否将此代码放在包含实际“子”视图控制器的“父”视图控制器中?@paulw11实际上,我有一个视图控制器/容器来容纳多个视图控制器里面有按钮和标签。我没有专门创建父视图和子视图。对。这就是问题所在。我不知道为什么苹果决定iPad在两个方向上应该具有相同的特性,这似乎完全违背了特性的目的。无论如何,您需要做的是创建一个具有容器视图全屏的UIViewController,并将实际的视图控制器放在这个容器中。将上面的代码放在包含视图控制器中,以便更新包含的孩子的特征。您是否将此代码放在包含实际“孩子”视图控制器的“家长”视图控制器中?@paulw11实际上,我有一个视图控制器/容器,其中包含许多按钮和标签。我没有专门创建父视图和子视图。对。这就是问题所在。我不知道为什么苹果决定iPad在两个方向上应该具有相同的特性,这似乎完全违背了特性的目的。无论如何,您需要做的是创建一个具有容器视图全屏的UIViewController,并将实际的视图控制器放在这个容器中。将上面的代码放在包含的视图控制器中,以便它更新包含的子对象的特征