< How to change the order of view layering using Z index | How to automatically switch between HStack and VStack based on size class > |
Updated for Xcode 14.2
SwiftUI supports size classes natively by exposing them in the environment for us to read. To use them, first create an @Environment
object that will store its value, then check the value of that property whenever you need, looking for either the .compact
or .regular
size class.
For example:
struct ContentView: View {
@Environment(\.horizontalSizeClass) var horizontalSizeClass
var body: some View {
if horizontalSizeClass == .compact {
Text("Compact")
} else {
Text("Regular")
}
}
}
Download this as an Xcode project
Size classes are a great way to make your user interfaces intelligently adapt to the available space by using a VStack
or a HStack
for your content. For example, if you have lots of space you might lay things out horizontally, but switch to vertical layout when space is limited.
SAVE 50% To celebrate WWDC23, all our books and bundles are half price, so you can take your Swift knowledge further without spending big! Get the Swift Power Pack to build your iOS career faster, get the Swift Platform Pack to builds apps for macOS, watchOS, and beyond, or get the Swift Plus Pack to learn advanced design patterns, testing skills, and more.
Link copied to your pasteboard.