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

标签 ios xcode ipad autolayout nslayoutconstraint

我有适用于 12 英寸 iPad Pro 和 iPad Air 的应用程序。它们具有相同的纵横比。 但是,当使用自动布局时,相同值的约束会使应用在 2 台设备上看起来不同,因为它们与屏幕的磅值有关。

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

最佳答案

是的,您可以使用 multiplier 属性来设置与屏幕尺寸或您选择的任何内容相关的约束。例如,如果您将其设置为 0.3,则表示您限制的 30%。例如,自定义 View 的宽度将是父 View 宽度的 30%。

enter image description here

此外,您还可以使用 UIStackView。它负责适本地调整内部 View 的大小。 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)
            ])

关于iOS - 对不同的 iPad 尺寸使用相同的约束,只是缩放 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49194906/

相关文章:

ios - 无法打开文件 “IMG_00001.MOV”,因为您没有查看它的权限

objective-c - iOS 的 Google 静态库如何不需要 "other linker flag"(OTHER_LDFLAGS)

ios - 带有尾部截断的 UIButton 的标题标签自动换行

objective-c - 应用程序委托(delegate)和应用程序的正确连接是什么

ios - 您的二进制文件不支持iPad Phonegap

ios - 从 "unwindForSegue()"迁移到 "segueForUnwindingToViewController()"

ios - 如何在快捷语言中设置键盘上的完成键?

objective-c - 基于文档的应用程序中的粗体 + 斜体快捷方式

iphone - 具有多个字典的 UITableView 多个部分

ios - 如何在后台取消所有 afhttpsessionmanager 请求?