scenePadding(_:edges:)
Adds a specified kind of padding to the specified edges of this view using an amount that’s appropriate for the current scene.
Declaration
nonisolated func scenePadding(_ padding: ScenePadding, edges: Edge.Set = .all) -> some View
Parameters
- padding:
The kind of padding to add.
- edges:
The set of edges along which to pad this view.
Return Value
A view that’s padded on specified edges by a scene-appropriate amount.
Discussion
Use this modifier to add a scene-appropriate amount of padding to a view. Specify either a single edge value from Edge.Set, or an OptionSet that describes the edges to pad.
In macOS, use scene padding to produce the recommended spacing around the root view of a window. In watchOS, use scene padding to align elements of your user interface with top level elements, like the title of a navigation view. For example, compare the effects of different kinds of padding on text views presented inside a NavigationView in watchOS:
VStack(alignment: .leading, spacing: 10) {
Text("Minimum Scene padding")
.scenePadding(.minimum, edges: .horizontal)
.border(.red) // Border added for reference.
Text("Navigation Bar Scene padding")
.scenePadding(.navigationBar, edges: .horizontal)
.border(.yellow)
Text("Regular padding")
.padding(.horizontal)
.border(.green)
Text("Text with no padding")
.border(.blue)
Button("Button") { }
}
.navigationTitle("Hello World")The text with minimum scene padding uses the system minimum padding and the text with navigation bar scene padding automatically aligns with the navigation bar content. In contrast, the text that uses the default padding and the text without padding do not align with scene elements.
Scene padding in watchOS also ensures that your content avoids the curved edges of a device like Apple Watch Series 7. In other platforms, scene padding produces the same default padding that you get from the padding(_:_:) modifier.