Skip to content

GlennBrann/SideMenu

Repository files navigation

SideMenu

A SwiftUI Side Menu Control (inspired by Instagram Stories Camera)

SwiftPM compatible Swift Version License

See below for examples and customization.

Installation

Requirements

  • iOS 14.0+
  • Xcode 13+
  • Swift 5+

Swift Package Manager

In Xcode, select: File > Swift Packages > Add Package Dependency.

Paste the package github url in the search bar https://github.com/GlennBrann/SideMenu and press next and follow instructions given via Xcode to complete installation.

You can then add SideMenu to your file by adding import SideMenu.

Or

Add this project on your Package.swift

import PackageDescription

let package = Package(
    dependencies: [
        .Package(url: "https://https://github.com/GlennBrann/SideMenu.git", branch: "main")
    ]
)

Example

SideMenu

SideMenu2

let allMenuItems = [
    MenuItem(id: "create", title: "Create", image: "textformat", selected: false),
    MenuItem(id: "boomerang", title: "Boomerang", image: "infinity", selected: false),
    MenuItem(id: "layout", title: "Layout", image: "square.split.bottomrightquarter.fill", selected: false),
    MenuItem(id: "handsfree", title: "Hands-free", image: "stop.circle", selected: false),
    MenuItem(id: "dual", title: "Dual", image: "camera.shutter.button", selected: false)
]

struct ContentView: View {
    
    @State private var selectedItem: MenuItem?
    @State private var menuAlignment: HorizontalAlignment = .leading
    
    var body: some View {
        Color.gray.opacity(0.5).edgesIgnoringSafeArea(.all)
            .addSideMenu(
                menuItems: allMenuItems,
                closedDisplayCount: 3,
                selectedItem: $selectedItem,
                menuAlignment: $menuAlignment
            )
    }
}

License

SideMenu is available under the BSD 3-Clause. See the LICENSE file for more info.

About

A SwiftUI Side Menu Control (inspired by Instagram Stories Camera)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages