Skip to main content

How to create grouped and inset grouped lists

About 2 minSwiftSwiftUIArticle(s)bloghackingwithswift.comcrashcourseswiftswiftuixcodeappstore

How to create grouped and inset grouped lists 관련

SwiftUI by Example

Back to Home

How to create grouped and inset grouped lists | SwiftUI by Example

How to create grouped and inset grouped lists

Updated for Xcode 15

Updated for iOS 15

SwiftUI's List views have a listStyle() modifier to control how the list looks, and there are two options you're likely to want: .grouped (or GroupedListStyle() for Xcode 12) to get the old-style grouping of items, and .insetGrouped (or InsetGroupedListStyle() for Xcode 12) to get the newer style grouping of items.

For example, this defines an example row and places it inside a grouped list:

struct ExampleRow: View {
    var body: some View {
        Text("Example Row")
    }
}

struct ContentView: View {
    var body: some View {
        List {
            Section(header: Text("Examples")) {
                ExampleRow()
                ExampleRow()
                ExampleRow()
            }
        }
        .listStyle(.grouped)
    }
}

Download this as an Xcode projectopen in new window

A group of 3 rows whose width spans the screen below an “Examples” section heading.
A group of 3 rows whose width spans the screen below an “Examples” section heading.

Alternatively, this will create a list of 100 rows with the new inset style of grouping:

List(0..<100) { i in
    Text("Row \(i)")
}
.listStyle(.insetGrouped)

Download this as an Xcode projectopen in new window

A group of rows with left and right edges inset from the screen's sides.
A group of rows with left and right edges inset from the screen's sides.

Important

If you're using Xcode 12 you need to use GroupedListStyle and InsetGroupedListStyle() rather than .grouped and insetGrouped.

Similar solutions…
SwiftUI tips and tricks | SwiftUI by Example

SwiftUI tips and tricks
All SwiftUI property wrappers explained and compared | SwiftUI by Example

All SwiftUI property wrappers explained and compared
How to create multi-column lists using Table | SwiftUI by Example

How to create multi-column lists using Table
How to inset the safe area with custom content | SwiftUI by Example

How to inset the safe area with custom content
Building a menu using List | SwiftUI by Example

Building a menu using List

이찬희 (MarkiiimarK)
Never Stop Learning.