模态视图上的尺寸等级

mdk*_*dkr 0 iphone ipad modalviewcontroller size-classes adaptive-layout

我正在尝试为iPad和iPhone(4英寸)设置不同的限制。

我为iPhone设置了“常规高度”和“紧凑宽度”约束。但是这些限制显示在7.9英寸iPad,9.7英寸iPad上。

这些约束用于模式视图。

我如何使“常规高度”和“紧凑宽度”约束仅限于iPhone。

mdk*_*dkr 5

由于iPad上的表单演示是紧凑的宽度和常规的高度,因此受到了这些限制。

Formsheet iOS 8约束与iPhone约束相同

解决方案是在Presented视图控制器中重写traitCollection

override var traitCollection: UITraitCollection
{
    if UIDevice.isIPad()
    {
        let traits = UITraitCollection(horizontalSizeClass: UIUserInterfaceSizeClass.Regular)
        let traits2 = UITraitCollection(verticalSizeClass: UIUserInterfaceSizeClass.Regular)
        let traitCollection = UITraitCollection(traitsFromCollections: [traits, traits2])

        return traitCollection
    }
    else
    {
        return super.traitCollection
    }
}
Run Code Online (Sandbox Code Playgroud)