【发布时间】:2020-05-23 23:52:48
【问题描述】:
寻找一种简洁的解决方案,以编程方式布置 UI 并使其在每台设备上看起来都正确。我已经尝试扩展 CGFloat 以根据设备缩放数字
extension CGFloat {
func scale() {
// Modifies self by multiplies by the ratio between the initial screen size and the desired screen size
}
}
// usage
view.widthAnchor.constraint(equalToConstant: 20.scale())
我还尝试为 iPhone 和 iPad 创建两组不同的约束,并根据运行应用程序的设备激活它们,但这似乎不必要地冗长。
我如何布局我的 UI,以便它可以在所有设备上运行而无需变通办法。我应该避免某些类型的约束吗? (例如,不是设置宽度/高度常量,而是将它们设置为屏幕(或其他视图)宽度/高度的倍数?)
编辑:我不想过度解释我自己的情况,所以让我重新问这个问题。在为 iPhone 和 iPad 设计的应用程序中设置约束的最佳实践是什么?仅检查设备是否为 iPad 是否是不好的做法,如果是,则仅对 iPad 有限制,如果不是,则仅对 iPhone 有限制。
【问题讨论】:
标签: ios swift ipad autolayout constraints