Advertisement
Guest User

dropdown

a guest
Mar 25th, 2021
381
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.01 KB | None | 0 0
  1. import SwiftUI
  2.  
  3. struct Collapsible<Content: View>: View {
  4.     @State var label: () -> Text
  5.     @State var content: () -> Content
  6.    
  7.     @State private var collapsed: Bool = true
  8.    
  9.     var body: some View {
  10.         VStack {
  11.             Button(
  12.                 action: { self.collapsed.toggle() },
  13.                 label: {
  14.                     HStack {
  15.                         self.label()
  16.                         Spacer()
  17.                         Image(systemName: self.collapsed ? "chevron.down" : "chevron.up")
  18.                     }
  19.                     .padding(.bottom, 1)
  20.                     .background(Color.white.opacity(0.01))
  21.                 }
  22.             )
  23.             .buttonStyle(PlainButtonStyle())
  24.            
  25.             VStack {
  26.                 self.content()
  27.             }
  28.             .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: collapsed ? 0 : .none)
  29.             .clipped()
  30.             .animation(.easeOut)
  31.             .transition(.slide)
  32.         }
  33.     }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement