SwiftUI 通过将大小型暴露在环境中供我们阅读来原生支持大小类。 要使用它们,首先创建一个 @Environment 对象,该对象将存储其值,然后在需要时检查该属性的值,查找 .compact 或 .regular 尺寸类。
例如:
struct ContentView: View {
#if !os(macOS)
@Environment(\.horizontalSizeClass) var horizontalSizeClass
#endif
var body: some View {
#if !os(macOS)
if horizontalSizeClass == .compact {
Text("Compact")
} else {
Text("Regular")
}
#else
Text("Regular2")
#endif
}
}
上面示例在 iPhone 中显示 Compact 在 iPad 中显示 Regular,在 macOS 中显示 Regular2
Size 类是通过将 VStack 或 HStack 用于内容来使用户界面智能地适应可用空间的好方法。例如,如果您有很多空间,则可以将事物水平放置,但在空间有限时切换为垂直布局。
⚠️ 注意: horizontalSizeClass 只适用于 iOS