在一些应用程序中有屏幕尺寸的设置。与常规约束设置相比,优势与劣势是什么?
例子:
struct Setting {
struct Small {
static let phoneSE: CGFloat = 11.0
static let phone: CGFloat = 13.0
static let phonePlus: CGFloat = 14.0
}
struct Medium {
static let phoneSE: CGFloat = 12.0
static let phone: CGFloat = 14.0
static let phonePlus: CGFloat = 15.0
}
struct Large {
static let phoneSE: CGFloat = 13.0
static let phone: CGFloat = 15.0
static let phonePlus: CGFloat = 16.0
}
这些值是特定的字体大小值。
这些值经常会因用途而改变,一些值可能是字体大小或 img 大小。这样的做法是好的做法还是矫枉过正?
最佳答案
针对特定设备进行编码通常不是“良好做法”。或者换句话说,它是“针对大小类(使用自动布局约束)进行编码并尽可能使用动态类型(而不是特定字体大小)的良好做法。为什么?因为当 Apple 发布新内容时- 就像去年 4 月的 10.5 英寸 iPad Pro 或今年 9 月传闻中的 iPhone Pro - 如果对代码有任何影响,您无需做太多事情。
它将“正常工作”。
也就是说,以下是您可能需要针对特定设备(或更准确地说,特定屏幕尺寸)进行编码的一些原因:
- UI 在 iPad 和 iPhone“Plus”上的方向发生变化。无论方向如何,尺寸等级始终是规则的。
- 字体大小,如您的示例所示。
我相信还有更多。但在这两种情况下——实际上,在所有情况下——努力使用 Apple 提供给你的东西是“良好做法”。如果可能,请重构您的 UI。节省不必要的持续维护。
关于代码中的 iOS 屏幕尺寸,这是可选的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45682305/