我正在寻找一种干净的解决方案来以编程方式布局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以便在所有设备上都能正常工作而不需要hacky的解决方案。是否应避免某些类型的约束条件?(例如,将宽度/高度常量设置为屏幕(或其他视图)的宽度/高度的倍数,而不是固定值?)编辑:我不想过度解释自己的情况,让我重新问问题。在为iPhone和iPad设计的应用程序中设置约束条件的一些最佳实践是什么?只检查设备是否为iPad并且如果是,则仅为iPad设置约束条件,如果不是,则只为iPhone设置约束条件是不好的做法吗?
traitCollectionDidChange
的响应情况激活/停用它们。 - DonMag