/FloatingMenuActionButton

FloatingMenuActionButton

Primary LanguageSwiftMIT LicenseMIT

FloatingMenuActionButton

Example

Overview

This is an open-source library to use with SwiftUI. It allows you to create Floating menu action button.

Installation

Swift Package Manager

To integrate FloatingMenuActionButton into your Xcode project using Xcode 12, specify it in File > Swift Packages > Add Package Dependency...:

https://github.com/YugoMatsuda/FloatingMenuActionButton

Usage

import SwiftUI
import FloatingMenuActionButton

struct ContentView: View {
    @State var isSelected = false
    @State private var showOtherView = false
    var body: some View {
        ZStack {
            if isSelected {
                Color.gray.edgesIgnoringSafeArea(.all)
                    .onTapGesture {
                        withAnimation(.easeIn(duration: 0.2)) {
                            isSelected.toggle()
                        }
                    }
            }
            
            VStack {
                Spacer()
                
                HStack {
                    Spacer()
                    
                    FloatingMenuActionButton(isSelected: $isSelected, floatingMenuItems: generateFloatingMenuItems())
                }
                .padding()
            }
        }
        .sheet(isPresented: $showOtherView) {
            Text("Other View")
        }
    }
    
    private func generateFloatingMenuItems() -> [FloatingMenuItem] {
        return  [ .init(iconName: "pencil", buttonAction: { showOtherView.toggle() }),
                  .init(iconName: "camera.fill", buttonAction: { showOtherView.toggle() }),
                  .init(iconName: "paperplane.fill", buttonAction: { showOtherView.toggle() }),
        ]
    }
}