Autumn Sale50% offCOMPOT
Settings, Lists & RowsPro ComponentiOS 16.0+Xcode 15+

FAQ List with Disclosure Groups

Complete multi-item expandable FAQ section for help screens.

SwiftUI Implementation

Pure Vanilla Swift • No Dependencies
faqListWDisclosureList.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

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 Store