A Swift based implementation of the Android Snackbar for iOS
TTGSnackbar is useful for showing a brief message at the bottom of the screen with an action button.
It appears above all other elements on screen and only one can be displayed at a time.
It disappears after a timeout or after user click the action button.
Swift 2.2
iOS 8+
You can use CocoaPods to install TTGSnackbar
by adding it to your Podfile
:
platform :ios, '8.0'
use_frameworks!
pod "TTGSnackbar"
You can use Carthage to install TTGSnackbar
by adding it to your Cartfile
:
github "zekunyan/TTGSnackbar"
And you need to import the module.
import TTGSnackbar
let snackbar = TTGSnackbar.init(message: "Message", duration: .Short)
snackbar.show()
let snackbar = TTGSnackbar.init(message: "Message", duration: .Middle, actionText: "Action")
{ (snackbar) -> Void in
NSLog("Click action!")
}
snackbar.show()
let snackbar = TTGSnackbar.init(message: "Message", duration: .Forever, actionText: "Action")
{ (snackbar) -> Void in
NSLog("Click action!")
// Dismiss manually after 3 seconds
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(3 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) { () -> Void in
snackbar.dismiss()
}
}
snackbar.show()
let snackbar: TTGSnackbar = TTGSnackbar.init(message: "Two actions !", duration: .Long)
// Action 1
snackbar.actionText = "Yes"
snackbar.actionTextColor = UIColor.greenColor()
snackbar.actionBlock = { (snackbar) in NSLog("Click Yes !") }
// Action 2
snackbar.secondActionText = "No"
snackbar.secondActionTextColor = UIColor.yellowColor()
snackbar.secondActionBlock = { (snackbar) in NSLog("Click No !") }
snackbar.show()
let snackbar: TTGSnackbar = TTGSnackbar.init(message: "Two actions !", duration: .Long)
// Add icon image
snackbar.icon = UIImage.init(named: "emoji_cool_small")
snackbar.show()
message: String
defines the message to diaplay.
messageTextColor: UIColor
defines the message text color.
messageTextFont: UIFont
defines the message text font.
duration: TTGSnackbarDuration
defines the display duration.
TTGSnackbarDuration
: Short
, Middle
, Long
and Forever
.
When you set Forever
, the snackbar will show an activity indicator after user click the action button and you must dismiss the snackbar manually.
actionText: String
defines the action button title.
actionTextColor: UIColor
defines the action button title color.
actionTextFont: UIFont
defines the action button title font.
actionBlock: TTGActionBlock?
will be called when user click the action button.
// TTGActionBlock definition.
public typealias TTGActionBlock = (snackbar: TTGSnackbar) -> Void
secondActionText: String
secondActionTextColor: UIColor
secondActionTextFont: UIFont
secondActionBlock: TTGActionBlock?
dismissBlock: TTGDismissBlock?
will be called when snackbar dismiss automatically or when user click action button to dismiss the snackbar.
// TTGDismissBlock definition.
public typealias TTGDismissBlock = (snackbar: TTGSnackbar) -> Void
animationType: TTGSnackbarAnimationType
defines the style of snackbar when it show and dismiss.
TTGSnackbarAnimationType
: FadeInFadeOut
, SlideFromBottomToTop
, SlideFromBottomBackToBottom
, SlideFromLeftToRight
and SlideFromRightToLeft
.
The default value of animationType
is SlideFromBottomBackToBottom
, which is the same as Snackbar in Android.
animationDuration: NSTimeInterval
defines the duration of show and hide animation.
leftMargin: CGFloat
, rightMargin: CGFloat
and bottomMargin: CGFloat
define the margins of snackbar.
height: CGFloat
defines the height of snackbar.
cornerRadius: CGFloat
defines the corner radius of snackbar.
icon: UIImage
defines the icon image.
iconContentMode: UIViewContentMode
defines the content mode of icon imageView.