iOS - 对不同的iPad尺寸使用相同的约束,只是缩放视图?

时间:2018-03-09 13:28:48

标签: ios xcode ipad autolayout nslayoutconstraint

我有12英寸iPad Pro和iPad Air的应用程序。它们具有相同的宽高比。 但是当使用自动布局时,相同值的约束会使应用在2个设备上看起来不同,因为它们与屏幕的点大小相关联。

是否可以使用某种参考屏幕坐标系进行约束,或者采用其他方法来实现仅在相同宽高比的不同屏幕尺寸上缩放的视觉效果?

1 个答案:

答案 0 :(得分:2)

是的,您可以使用multiplier属性来设置相对于屏幕大小或您选择的任何内容的约束。例如,如果将其设置为0.3,则表示您约束的约30%。例如,自定义视图的宽度将是superview宽度的30%。

enter image description here

此外,您可以使用UIStackView。它负责适当调整内部视图的大小。 Apple建议尽可能一直使用它。

左边10%保证金的例子。

        let leftMarginGuide = UILayoutGuide()
        view.addLayoutGuide(leftMarginGuide)

        NSLayoutConstraint.activate([
            leftMarginGuide.leadingAnchor.constraint(equalTo: view.leadingAnchor),
            leftMarginGuide.topAnchor.constraint(equalTo: view.topAnchor),
            leftMarginGuide.bottomAnchor.constraint(equalTo: view.bottomAnchor),
            leftMarginGuide.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.1)
            ])