Lightweight dropdown message bar in Swift. It's simple and beautiful
SwiftyDrop
SwiftyDrop is a lightweight pure Swift simple and beautiful dropdown message.
Features
- Easy to use like:
Drop.down("Message")
- Message field expands depending on the message.
How it looks
States
Blurs
iPhone X
iPad
Demo
Git clone or download this repository and open SwiftyDrop.xcodeproj . You can try SwiftyDrop in your Mac or iPhone.
Runtime Requirements
- iOS8.0 or later
- Xcode 9.0
- Swift 4.0
Installation and Setup
Note: Embedded frameworks require a minimum deployment target of iOS 8.1.
Information: To use SwiftyDrop with a project targeting iOS 8.0 or lower, you must include the SwiftyDrop/Drop.swift
source file directly in your project.
Installing with CocoaPods
CocoaPods is a centralised dependency manager that automates the process of adding libraries to your Cocoa application. You can install it with the following command:
$ gem update
$ gem install cocoapods
$ pods --version
To integrate SwiftyDrop into your Xcode project using CocoaPods, specify it in your Podfile
and run pod install
.
platform :ios, '8.0'
use_frameworks!
pod 'SwiftyDrop', '~>4.0'
Installing with Carthage
Just add to your Cartfile:
github "morizotter/SwiftyDrop" ~> 4.0
Manual Installation
To install SwiftyDrop without a dependency manager, please add all of the files in /SwiftyDrop
to your Xcode Project.
Usage
Basic
To start using SwiftyDrop, write the following line wherever you want to show dropdown message:
import SwiftyDrop
Then invoke SwiftyDrop, by calling:
Drop.down("Message")
It is really simple!
States
SwiftyDrop has states of display.
Examples
Drop.down("Message")
Drop.down("Message", state: .Success)
Drop.down("Message", state: .Color(.orangeColor()))
Drop.down("Message", state: .Blur(.Light))
Custom states
You can customize looks by comforming DropStatable
protocol.
Examples are:
enum Custom: DropStatable {
case BlackGreen
var backgroundColor: UIColor? {
switch self {
case .BlackGreen: return .blackColor()
}
}
var font: UIFont? {
switch self {
case .BlackGreen: return UIFont(name: "HelveticaNeue-Light", size: 24.0)
}
}
var textColor: UIColor? {
switch self {
case .BlackGreen: return .greenColor()
}
}
var blurEffect: UIBlurEffect? {
switch self {
case .BlackGreen: return nil
}
}
}
Drop.down(self.sampleText(), state: Custom.BlackGreen)
Of course you can use class or struct to make custom state if it is comforming to DropStatable
protocol.
Prepared States are enum:
- .Default
- .Info
- .Success
- .Warning
- .Error
- .Color: UIColor
- .Blur: UIBlurEffectStyle
Duration
Drop.down("Message", duration: 3.0)
You can change duration like this above. Default duration is 4.0.
Action
Drop.down("Message") {
print("Action fired!")
}
Contribution
Please file issues or submit pull requests! We're waiting! :)
License
SwiftyDrop is released under the MIT license. Go read the LICENSE file for more information.