MaterialActionSheetController alternatives and similar libraries
Based on the "Alert" category.
Alternatively, view MaterialActionSheetController alternatives based on common mentions on social networks and blogs.
-
SwiftMessages
A very flexible message bar for iOS written in Swift. -
Alerts Pickers
Advanced usage of UIAlertController with TextField, DatePicker, PickerView, TableView and CollectionView. -
SwiftEntryKit
A simple and versatile pop-up presenter. -
NotificationBanner
The easiest way to display highly customizable in app notification banners in iOS. -
XLActionController
Fully customizable and extensible action sheet controller written in Swift 2. -
PMAlertController
PMAlertController is a great and customizable substitute to UIAlertController -
Queuer
Queuer is a queue manager, build on top of OperationQueue and Dispatch (aka GCD). -
SPAlert
Native popup from Apple Music & Feedback in AppStore. Contains Done & Heart presets. -
StatusAlert
Display Apple system-like self-hiding status alerts without interrupting user flow. -
SwiftOverlays
various popups and notifications. -
Popup View
Toasts and popups library written with SwiftUI -
CFNotify
A customizable framework to create draggable alert views. -
GoogleWearAlert
Google Wear Alert style. -
EZAlertController
Easy Swift UIAlertController. -
Sheet
Actionsheet with navigation features such as the Flipboard App. -
CRNotifications
Custom in-app notifications. -
AwaitToast
๐ An async waiting toast with basic toast. Inspired by facebook posting toast. -
Zingle
An alert will display underneath your UINavigationBar. -
ALRT
An easier constructor for UIAlertController. Present an alert from anywhere. -
HYAlertController
A simple and minimalist iOS AlertController written in Swift 3. -
KRAlertController
A beautiful alert controller for your iOS. -
GSAlert
If you want to use UIAlertController, but still need to support iOS 7 this project is for you. -
SwiftyToggler
A Swifty way to toggle your features. -
SwiftAlertController
Nice and easy UIAlertController extensions
Get performance insights in less than 4 minutes
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of MaterialActionSheetController or a related project?
README
MaterialActionSheetController
Lightweight and totally customizable. Create and present it the way you do with UIAlertController.
Screenshots
- Demo
Default light theme | Dark theme | Custom header |
---|---|---|
Features
- [x] Using closures to configure actions
- [x] Action with optional icon and accessory view
- [x] Handling touch on accessory view
- [x] Separate long action list in sections
- [x] Using closures to callback when controller is about to dismiss
- [x] 2 built-in themes: light & dark
- [x] Customizable header
- [x] Swift 3 compliant
Todos
- Present on iPad as a pop-up
- Documenting
Requirements
- iOS 8.0+
- Xcode 8
- Swift 3
Installation
CocoaPods
MaterialActionSheetController is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'MaterialActionSheetController'
Manually
Add MaterialActionSheetController.swift
to your project
Usage
// Import MaterialActionSheetController if you're using CocoaPods
import MaterialActionSheetController
// Create an action
let lightBulbAction = MaterialAction(
icon: UIImage(named: "lightbulb"),
title: "Action with UISwitch as an accessory view", handler: { [unowned self] (accessoryView) in
self.doSomething()
},
accessoryView: UISwitch(),
dismissOnAccessoryTouch: true,
accessoryHandler: { [unowned self] (accessoryView) in
if let lightBulbSwitch = accessoryView as? UISwitch {
if accessoryView.on {
print("Light is ON!")
} else {
print("Light is OFF!")
}
}
self.doSomeOtherThing()
})
// Then create your MaterialActionSheetController
// parameter sections is a variadic which take a flexible list of section
let materialActionSheetController = MaterialActionSheetController(
title: "A nice title",
message: "A friendly message",
actionSections: [aCoolAction, anotherCoolAction], [cancelAction])
// Or create
let materialActionSheetController = MaterialActionSheetController()
materialActionSheetController.title = "A nice title"
materialActionSheetController.message = "A friendly message"
materialActionSheetController.actionSections.append([aCoolAction, anotherCoolAction])
materialActionSheetController.actionSections.append([cancelAction])
// Customize theme
materialActionSheetController.theme = MaterialActionSheetTheme.dark()
// Custom header view
let imageView = UIImageView(image: UIImage(named: "myimage"))
imageView.bounds = CGRect(origin: CGPoint.zero, size: CGSize(width: 300, height: 100))
materialActionSheetController.customHeaderView = imageView
// Handler on "will dismiss" and "did dismiss" event
materialActionSheetController.willDismiss = { [unowned self] in
print("I will dismiss.")
self.doSomething()
}
// Finally present it
materialActionSheetController.didDismiss = { [unowned self] in
print("I did dismiss.")
self.doSomething()
}
presentViewController(materialActionSheetController, animated: true, completion: nil)
See code in demo for more detailed examples.
Contribute
Feel free to make PR, contributions are warmly welcome and appreciated.
License
MaterialActionSheetController is available under the MIT license. See the LICENSE file for more info.
*Note that all licence references and agreements mentioned in the MaterialActionSheetController README section above
are relevant to that project's source code only.