FAQ List with Disclosure Groups
Complete multi-item expandable FAQ section for help screens.
SwiftUI Implementation
Pure Vanilla Swift • No DependenciesfaqListWDisclosureList.swift
struct FAQDisclosureStyle: DisclosureGroupStyle {
func makeBody(configuration: Configuration) -> some View {
VStack {
Button {
withAnimation {
configuration.isExpanded.toggle()
}
} label: {
HStack(alignment: .firstTextBaseline) {
configuration.label
.fontWeight(.medium)
Spacer()
Image(systemName: configuration.isExpanded ? "minus" : "plus")
.foregroundStyle(Color.accentColor)
}
.animation(.easeInOut, value: configuration.isExpanded)
}
.contentShape(Rectangle())
}
.buttonStyle(.plain)
if configuration.isExpanded {
configuration.content
.font(.body)
}
}
}
struct FAQListWDisclosureList: View {
var body: some View {
List {
Section(header: Text("Frequently Asked Questions")) {
DisclosureGroup("What is Compot?") {
Text("Compot is great")
}
DisclosureGroup("What is Compot?") {
Text("Compot is great")
}
DisclosureGroup("What is Compot?") {
Text("Compot is great")
}
DisclosureGroup("What is Compot?") {
Text("Compot is great")
}
DisclosureGroup("What is Compot?") {
Text("Compot is great")
}
DisclosureGroup("What is Compot?") {
Text("Compot is great")
}
DisclosureGroup("What is Compot?") {
Text("Compot is great")
}
DisclosureGroup("What is Compot?") {
Text("Compot is great")
}
DisclosureGroup("What is Compot?") {
Text("Compot is great")
}
}
.disclosureGroupStyle(FAQDisclosureStyle())
}
.headerProminence(.increased)
}
}
#Preview {
FAQListWDisclosureList()
}Ready to copy and paste directly into any Xcode project running iOS 16.0+.
Recommended Use Cases
- First-run onboarding flows and feature introductions
- App settings, preferences, and account configuration screens
Component Details
- Category
- Settings, Lists & Rows
- iOS Compatibility
- iOS 16.0+
- Xcode Version
- Xcode 15+
- Platform
- iOS
- License Tier
- Pro
- Themes & Contexts
- settingsonboardinglist
C
Compot for iOS
Native SwiftUI playground app
Preview all 130+ components interactively on your device and copy code straight to Xcode with 1 tap.
Get Compot on the App StoreRelated SwiftUI Components
More components in Settings, Lists & Rows and related app architectures.
ButtonsiOS 16.0+
Primary Button Basic
High-emphasis prominent action button with standard SwiftUI prominence styling and haptic feedback.
View Component & Code
ButtonsiOS 16.0+
CTA Button Large Basic
Full-width, high-impact call-to-action button designed for onboarding screens, welcome flows, and paywalls.
View Component & Code
ButtonsiOS 16.0+
Secondary Button Basic
Medium-emphasis secondary action button styled for alternative user workflows and dismissal actions.
View Component & Code