TestsTested | ✗ |
LangLanguage | SwiftSwift |
License | MIT |
ReleasedLast Release | Apr 2017 |
SwiftSwift Version | 3.0 |
SPMSupports SPM | ✗ |
Maintained by JerryShi.
Support Swift 3
JESAlertView
is an alert view written by swift 3, support both action sheet and alert view style.
And now provide 6 styles to show your alert.
If you want to use the world of Swift 3, you need Xcode 8+.
Redesign the code and APIs, now provide more convenient way to use JESAlertView
than code before version 2.0.0, like SnapKit
.
Provide a default theme of alert view. So you can use this default theme or create a theme you like.
import JESAlertView
// 🌟 Usage 👇
let theme = JESAlertViewTheme.defaultTheme()
let alert = JESAlertView(withTheme: theme,
preferredStyle: .alert(category: .normal),
title: "A customizable action sheet title.",
message: "A customizable action sheet message.",
cancelButton: .cancel("CANCEL"),
destructiveButton: .destructive("OK"),
otherButtons: [.customize("Default 1",
UIColor.whiteColor(),
UIColor(red: 80 / 255.0, green: 227 / 255.0, b: 194 / 255.0, alpah: 1.0))],
tapClosure: { (index) in
print("Tapped button index is \(index)")
})
// Show Alert view
presentViewController(alert, animated: true, completion: nil)
self.jes.presentAlert(animated: true, { (make) in
make.theme
.actionSheet
.title("Okay/Cancel")
.message("A customizable action sheet message.")
.cancel("Cancel")
.destructive("OK")
.normal([])
.tapped({ (index) in
print("Tapped index is \(index)")
})
})
self.jes.presentAlert(animated: true, { (make) in
make.customize
.theme(theme)
.actionSheet
.title("Okay/Cancel")
.message("A customizable action sheet message.")
.cancel("Cancel")
.destructive("OK")
.normal([])
.tapped({ (index) in
print("Tapped index is \(index)")
})
})
For more usage you can see here
You can create a theme to make the alert view different. Like this
JESAlertViewTheme(overlayColor: UIColor.overlayColor,
titleFont: UIFont.boldSystemFontOfSize(18),
buttonFont: UIFont.boldSystemFontOfSize(16),
messageFont: UIFont.systemFontOfSize(16),
titleTextColor: UIColor.textColor,
messageTextColor: UIColor.textColor,
backgroundColor: UIColor.backgroundColor,
shape: .Rounded(2.0))
shape
public typealias CornerRadius = CGFloat
public enum AlertShape {
case squared
case rounded(CornerRadius)
}
After 2.0.1, we can modify default properties like
let theme = AlertTheme.theme.backgroundColor(UIColor.black).buttonBackgroundColor(UIColor.red)
.buttonTitleFont(UIFont.systemFont(ofSize: 14))
All the theme properties are here
var overlayColor: UIColor
var backgroundColor: UIColor
var titleFont: UIFont
var titleColor: UIColor
var messageFont: UIFont
var messageColor: UIColor
var buttonTitleFont: UIFont
var buttonTitleColor: UIColor
var buttonBackgroundColor: UIColor
var cancelButtonBackgroundColor: UIColor
var cancelButtonTitleColor: UIColor
var destructBackgroundColor: UIColor
var destructTitleColor: UIColor
var shape: AlertShape
JESAlertView is available through Cocoapods.
Add the following to you Podfile
pod 'JESAlertView', '~> 2.0.1'
Provide more style of alert view.
let actionSheet = JESAlertView(withTheme: theme,
preferredStyle: .alert(category: .success),
title: "Congratulations!",
message: "You've just displayed this awesome Pop Up View.",
cancelButton: .cancel("CANCEL"),
otherButtons: [.defaultStyle("Default 1"), .DefaultStyle("Default 2")],
tapClosure: { (index) in
print("Tapped button index is \(index)")
})
presentViewController(actionSheet, animated: true, completion: nil)
Upgrade JESAlertViewStyle
like
public enum JESAlertViewStyle {
case actionSheet
case alert(category: JESAlertViewCategory)
}
Create an enum named JESAlertViewCategory
public enum JESAlertViewCategory {
case normal, success, failure, warning, notice, question
}
self.jes.presentAlert(animated: true, { (make) in
make.theme
.alert
.success
.title("Congratulations!")
.message("You've just displayed this awesome Pop Up View.")
.cancel("Cancel")
.normal(["Default 1", "Default 2"])
.tapped({ (index) in
print("Index \(index)")
})
})
Icon image from SCLAlertView
SnapKit
JESAlertView is released under the MIT license. See LICENSE for details.