iOS - 对不同的 iPad 大小使用相同的约束,只是缩放视图?
iOS - Use same constraints for different iPad sizes, just scaling the view?
我有适用于 12 英寸 iPad Pro 和 iPad Air 的应用程序。它们具有相同的纵横比。
但是当使用自动布局时,相同值的约束会使应用程序在 2 台设备上看起来不同,因为它们与屏幕的磅值有关。
是否可以使用某种参考屏幕坐标系来进行约束,或者是否可以使用其他方法来实现仅在具有相同宽高比的不同屏幕尺寸上缩放的视觉效果?
是的,您可以使用 multiplier
属性 来设置与屏幕尺寸或您选择的任何内容相关的约束。例如,如果您将其设置为 0.3
,则表示您限制的 30%。例如,自定义视图的宽度将是父视图宽度的 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)
])
我有适用于 12 英寸 iPad Pro 和 iPad Air 的应用程序。它们具有相同的纵横比。 但是当使用自动布局时,相同值的约束会使应用程序在 2 台设备上看起来不同,因为它们与屏幕的磅值有关。
是否可以使用某种参考屏幕坐标系来进行约束,或者是否可以使用其他方法来实现仅在具有相同宽高比的不同屏幕尺寸上缩放的视觉效果?
是的,您可以使用 multiplier
属性 来设置与屏幕尺寸或您选择的任何内容相关的约束。例如,如果您将其设置为 0.3
,则表示您限制的 30%。例如,自定义视图的宽度将是父视图宽度的 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)
])