我有12英寸iPad Pro和iPad Air的应用程序。它们具有相同的宽高比。 但是当使用自动布局时,相同值的约束会使应用在2个设备上看起来不同,因为它们与屏幕的点大小相关联。
是否可以使用某种参考屏幕坐标系进行约束,或者采用其他方法来实现仅在相同宽高比的不同屏幕尺寸上缩放的视觉效果?
答案 0 :(得分:2)
是的,您可以使用multiplier
属性来设置相对于屏幕大小或您选择的任何内容的约束。例如,如果将其设置为0.3
,则表示您约束的约30%。例如,自定义视图的宽度将是superview宽度的30%。
此外,您可以使用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)
])