๐ What's Hover?
Hover (/หhษv.ษr/), verb
"to stay in one place in the air"
Hover is a draggable floating action button (FAB) inspired by Apple's session Designing Fluid Interfaces & Nathan Gitter's fluid-interfaces. Hover will always stick to the nearest corner to avoid blocking content and allows the user to send it to any other corner with a single swipe.
๐ฆ Installation
CocoaPods
Add the following line to your podfile
:
pod 'Hover'
And then run the following command in terminal:
pod install
Carthage
Add the following line to your cartfile
:
github "pedrommcarrasco/Hover"
And then run the following command in terminal:
carthage update
Swift Package Manager
To include Hover into a Swift Package Manager package, add it to the dependencies
attribute defined in your Package.swift
file. For example:
dependencies: [
.package(url: "https://github.com/pedrommcarrasco/Hover.git", from: <version>),
]
โจ๏ธ Usage Example
After installing Hover, you should start by importing the framework:
import Hover
Once imported, you can start using Hover like follows:
// Create Hover's Configuration (all parameters have defaults)
let configuration = HoverConfiguration(image: UIImage(named: "add"), color: .gradient(top: .blue, bottom: .cyan))
// Create the items to display
let items = [
HoverItem(title: "Drop it Anywhere", image: UIImage(named: "anywhere")) { print("Tapped 'Drop it anywhere'") },
HoverItem(title: "Gesture Driven", image: UIImage(named: "gesture")) { print("Tapped 'Gesture driven'") },
HoverItem(title: "Give it a Star", image: UIImage(named: "star")) { print("Tapped 'Give it a star'") }
]
// Create an HoverView with the previous configuration & items
let hoverView = HoverView(with: configuration, items: items)
// Add to the top of the view hierarchy
view.addSubview(hoverView)
hoverView.translatesAutoresizingMaskIntoConstraints = false
// Apply Constraints
// Never constrain to the safe area as Hover takes care of that
NSLayoutConstraint.activate(
[
hoverView.topAnchor.constraint(equalTo: view.topAnchor),
hoverView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
hoverView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
hoverView.trailingAnchor.constraint(equalTo: view.trailingAnchor)
]
)
For more details about all the parameters that you can configure, take a look into HoverConfiguration.swift
.
๐ฒ Sample Project
There's a sample project in this repository with some samples of Hover called Example.
โค๏ธ Support Hover
Hello there
Iโm Pedro, a Portuguese iOS Engineer since February 2017. Iโm an avid OSS enthusiast and contributor - help by sharing, learn by whatโs shared.
I've built and open-sourced multiple frameworks and applications, including Brooklyn and CocoaHub.
I'm also a conference and meetup organizer, being part of SwiftAveiro and CocoaHeads Porto.
If you enjoy my work and would like to help me continue it, please consider:
- https://github.com/users/pedrommcarrasco/sponsorship
- https://www.buymeacoffee.com/pedrommcarrasco
- https://www.paypal.me/pedrommcarrasco
๐ Contributing
Feel free to contribute to this project by reporting bugs or open pull requests.
Hover was created for personal use but dynamic enough to be an open-source framework. As such, while functional, it may lack some additional customization. If there's something missing that you need, feel free to ask me here or on Twitter.
โ License
Hover's available under the MIT license. See the LICENSE file for more information.