FloatingButton

by exyte

Easily customizable floating button menu created with SwiftUI

213 Stars 18 Forks Last release: Not found MIT License 10 Commits 3 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

FloatingButton

Easily customizable floating button menu created with SwiftUI


We are a development agency building phenomenal apps.

Travis CI Version Carthage Compatible License Platform Twitter

Usage

  1. Create main button view and a number of submenu buttons — both should be cast to
    AnyView
    type.
  2. Pass both to
    FloatingButton
    constructor:
   FloatingButton(mainButtonView: mainButton, buttons: buttons)
  1. You may also pass a binding which will determine if the menu is currently open. You may use this to close the menu on any submenu button tap for example.
    swift
    FloatingButton(mainButtonView: mainButton, buttons: buttons, isOpen: $isOpen)
    
  2. Chain
    .straight()
    or
    .circle()
    to specify desired menu type.
  3. Chain whatever you like afterwards. For example: ```swift FloatingButton(mainButtonView: mainButton, buttons: textButtons) .straight() .direction(.top) .alignment(.left) .spacing(10) .initialOffset(x: -1000) .animation(.spring())

    FloatingButton(mainButtonView: mainButton2, buttons: buttonsImage.dropLast()) .circle() .startAngle(3/2 * .pi) .endAngle(2 * .pi) .radius(70) ```

Universal options

spacing
- space between submenu buttons
initialScaling
- size multiplyer for submenu buttons when the menu is closed
initialOffset
- offset for submenu buttons when the menu is closed
initialOpacity
- opacity for submenu buttons when the menu is closed
animation
- custom SwiftUI animation like
Animation.easeInOut()
or
Animation.spring()

delays
- delay for each submenu button's animation start

Straight menu only options

direction
- position of submenu buttons relative to main menu button
alignment
- alignment of submenu buttons relative to main menu button

Circle only options

startAngle

endAngle

radius

Examples

To try out the FloatingButton examples: 1. Clone the repo

git clone [email protected]:exyte/FloatingButton.git
. 2. Open terminal and run
cd /Example
. 3. Run
pod install
to install all dependencies. 4. Run
xed .
to open project in the Xcode. 5. Try it!

Installation

CocoaPods

pod 'FloatingButton'

Carthage

github "Exyte/FloatingButton"

Manually

Drop FloatingButton.swift into your project.

Requirements

  • iOS 13+ / watchOS 13+ / tvOS 13+ / macOS 10.15+
  • Xcode 11+

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.