Alertift.alert(title: "Alertift", message: "Alertift is swifty, modern, and awesome UIAlertController wrapper.")
.action(.default("❤️"))
.action(.default("⭐"))
.show(on: self)
- Method chain
- UITextField support
- iPad support(Action Sheet, popover)
- Can change title/message/button text/ background color without using private APIs.
- Can change title/message's alignment without using private APIs.
Alertift.alert(title: "Sample 1", message: "Simple alert!")
.action(.default("OK"))
.show(on: self) // show on specified view controller
Alertift.alert(title: "Confirm", message: "Delete this post?")
.action(.destructive("Delete")) {
// delete post
}
.action(.cancel("Cancel"))
.show()
// Default presented view controller is `UIApplication.shared.keyWindow?.rootViewController`
Alertift.alert(title: "Sign in", message: "Input your ID and Password")
.textField { textField in
textField.placeholder = "ID"
}
.textField { textField in
textField.placeholder = "Password"
textField.isSecureTextEntry = true
}
.action(.cancel("Cancel"))
.action(.default("Sign in"), textFieldsHandler: { textFields in
let id = textFields?.first?.text ?? ""
let password = textFields?.last?.text ?? ""
// sign in
})
.show()
Alertift.actionSheet(message: "Which food do you like?")
.action(.default("🍣"))
.action(.default("🍎"))
.action(.default("🍖"))
.action(.default("🍅"))
.action(.cancel("None of them"))
.finally { action, index in
if action.style == .cancel {
return
}
Alertift.alert(message: "\(index). \(action.title!)")
.action(.default("OK"))
.show()
}
.show()
Use popover(anchorView:)
simply.
Alertift.actionSheet(message: "Which food do you like?")
.popover(anchorView: button)
.action(.default("🍣"))
.action(.default("🍎"))
.action(.default("🍖"))
.action(.default("🍅"))
.action(.cancel("None of them"))
.finally { action, index in
if action.style == .cancel {
return
}
Alertift.alert(message: "\(index). \(action.title!)")
.action(.default("OK"))
.show()
}
.show()
or, use popover(sourceView:SourceRect)
Alertift.actionSheet(message: "Which food do you like?")
.popover(sourceView: self.view, sourceRect: button.frame)
.action(.default("🍣"))
.action(.default("🍎"))
.action(.default("🍖"))
.action(.default("🍅"))
.action(.cancel("None of them"))
.finally { action, index in
if action.style == .cancel {
return
}
Alertift.alert(message: "\(index). \(action.title!)")
.action(.default("OK"))
.show()
}
.show()
Alertift.alert(title: "Red color title", message: "Message text color is blue")
.titleTextColor(.red)
.messageTextColor(.blue)
.backgroundColor(.lightGray)
.buttonTextColor(.orange)
.action(.default("Orange"))
.show()
public func backgroundColor(_ color: UIColor?) -> Self
public func buttonTextColor(_ color: UIColor?) -> Self
public func titleTextColor(_ color: UIColor?) -> Self
public func messageTextColor(_ color: UIColor?) -> Self
If you want to change Alertift's alert(action sheet) color always,
set color to static var
.
Alertift.Alert.titleTextColor = .red
Alertift.ActionSheet.backgroundColor = .gray
static var backgroundColor: UIColor? { get set }
static var buttonTextColor: UIColor? { get set }
static var titleTextColor: UIColor? { get set }
static var messageTextColor: UIColor? { get set }
- iOS 9.0+
- Xcode 8.1+
- Swift 3.0+
- Add the following to your Cartfile:
github "sgr-ksmt/Alertift" ~> 1.3
- Run
carthage update
- Add the framework as described.
Details: Carthage Readme
Alertift is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'Alertift', '~> 1.3'
and run pod install
Download all *.swift
files and put your project.
Change log is here.
- If you found a bug, open an issue.
- If you have a feature request, open an issue.
- If you want to contribute, submit a pull request.:muscle:
Alertift is under MIT license. See the LICENSE file for more info.