Overlays SwiftUI views on 3D models using 3D alignment instead of 2D positioning, enabling AR and 3D experiences.
14.1% of iOS users can use this modifier
iOS 26+ required
.spatialOverlay(alignment:content:) Places an overlay at a 3D alignment point
alignment: Alignment3Dcontent: ViewAdd a SwiftUI label overlaying a 3D model
Model3D(named: "teapot")
.spatialOverlay(alignment: .top) {
Text("Teapot")
.padding()
.background(.thinMaterial)
}Use #available to conditionally apply 3D overlays
if #available(iOS 26, *) {
Model3D(named: "teapot")
.spatialOverlay(alignment: .top) {
Text("Teapot")
.padding()
.background(.thinMaterial)
}
} else {
// Fallback for iOS 18 and earlier
Model3D(named: "teapot")
.overlay(alignment: .top) {
Text("Teapot")
.padding()
.background(.thinMaterial)
}
}Loading related modifiers...
If your app supports iOS versions older than 26, you can use #available to conditionally apply this modifier:
if #available(iOS 26, *) {
myView.spatialOverlay()
} else {
// Fallback for older iOS versions
myView
}Check the code examples above for specific #available patterns with this modifier.
The .spatialOverlay() modifier requires iOS 26 or later. This means 14.1% of current iOS users can use this modifier.
Yes! Use #available(iOS 26, *) to conditionally apply this modifier only on devices running iOS 26 or later, with a fallback for older versions.
Apply the .spatialOverlay() modifier to any SwiftUI view. Check the code examples above for usage patterns.
Visit the official Apple documentation for detailed information.