how to write a list in swiftui
Asked on 07/30/2024
1 search
To write a list in SwiftUI, you can use the List
view, which is a powerful and flexible way to display a collection of data. Here are some key points and examples from the WWDC sessions:
-
Basic List Initialization:
- You can initialize a
List
with a collection of data. This is a convenient way to create aForEach
view, which generates views for each element in the collection and provides them to its container. - Example:
struct Pet: Identifiable { let id = UUID() let name: String } let pets = [Pet(name: "Whiskers"), Pet(name: "Rufus"), Pet(name: "Bubbles")] struct PetListView: View { var body: some View { List(pets) { pet in Text(pet.name) } } }
- You can initialize a
-
Customizing Lists:
- Lists can be customized through the use of view modifiers. For example, you can add swipe actions to each row.
- Example:
struct PetListView: View { var body: some View { List(pets) { pet in Text(pet.name) .swipeActions { Button("Delete") { // Handle delete action } .tint(.red) } } } }
-
Using
ForEach
within a List:- You can also create a list by manually writing out a set of views or by using a
ForEach
view. - Example:
struct PetListView: View { var body: some View { List { ForEach(pets) { pet in Text(pet.name) } } } }
- You can also create a list by manually writing out a set of views or by using a
-
Searchable Lists:
- You can make a list searchable by adding the
searchable
modifier. - Example:
struct PetListView: View { @State private var searchTerm = "" var body: some View { List { ForEach(pets.filter { searchTerm.isEmpty || $0.name.contains(searchTerm) }) { pet in Text(pet.name) } } .searchable(text: $searchTerm) } }
- You can make a list searchable by adding the
For more detailed information, you can refer to the following sessions from WWDC:
These sessions cover the basics of creating and customizing lists in SwiftUI, as well as more advanced topics like composition and state management.

What’s new in SwiftUI
Learn how you can use SwiftUI to build great apps for any Apple platform. Explore a fresh new look and feel for tabs and documents on iPadOS. Improve your window management with new windowing APIs, and gain more control over immersive spaces and volumes in your visionOS apps. We’ll also take you through other exciting refinements that help you make expressive charts, customize and layout text, and so much more.

Get started with Dynamic Type
Dynamic Type lets people choose their preferred text size across the system and all of their apps. To help you get started supporting Dynamic Type, we’ll cover the fundamentals: How it works, how to find issues with scaling text in your app, and how to take practical steps using SwiftUI and UIKit to create a great Dynamic Type experience. We’ll also show how you can best use the Large Content Viewer to make navigation controls accessible to everyone.

Migrate your TVML app to SwiftUI
SwiftUI helps you build great apps on all Apple platforms and is the preferred toolkit for bringing your content into the living room with tvOS 18. Learn how to use SwiftUI to create familiar layouts and controls from TVMLKit, and get tips and best practices.