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 and pickers based on it: Telegram, Contacts, Location, PhotoLibrary, Country, Phone Code, Currency, Date... -
SwiftEntryKit
SwiftEntryKit is a presentation library for iOS. It can be used to easily display overlays within your iOS apps. -
SCLAlertView
Beautiful animated Alert View. Written in Swift -
NotificationBanner
The easiest way to display highly customizable in app notification banners in iOS -
PopupDialog
A simple, customizable popup dialog for iOS written in Swift. Replaces UIAlertController alert style. -
Whisper
:mega: Whisper is a component that will make the task of display messages and in-app notifications simple. It has three different views inside -
XLActionController
Fully customizable and extensible action sheet controller written in Swift -
PMAlertController
PMAlertController is a great and customizable alert that can substitute UIAlertController -
Jelly
๐ - Jelly is a library for animated, non-interactive & interactive viewcontroller transitions and presentations with the focus on a simple and yet flexible API. -
SweetAlert
Live animated Alert View for iOS written in Swift -
Popup View
Toasts and popups library written with SwiftUI -
CDAlertView
Highly customizable alertview and alert/notification/success/error/alarm popup written in Swift -
Queuer
Queuer is a queue manager, built on top of OperationQueue and Dispatch (aka GCD). -
SPAlert
Native alert from Apple Music & Feedback. Contains Done, Heart & Message and other presets. [Moved to: https://github.com/varabeis/SPAlert] -
StatusAlert
Display Apple system-like self-hiding status alerts. It is well suited for notifying user without interrupting user flow in iOS-like way. -
GSMessage
A simple style messages/notifications, in Swift. -
SwiftOverlays
SwiftOverlays is a Swift GUI library for displaying various popups and notifications -
SPIndicator
Floating indicator, mimicrate to indicator which appear when silent mode switched. Can be present from top and bottom. Interactive with gesters. -
GoogleWearAlert
An Android Wear style confirmation view for iOS -
CFNotify
A customizable framework to create draggable views -
Hokusai
A Swift library to provide a bouncy action sheet -
EZAlertController
Easy Swift UIAlertController -
Sheet
๐ Actionsheet with navigation features such as the Flipboard App -
Toast-Swift
A Swift Toast view - iOS 14 style and newer - built with UIKit. ๐ -
Alertift
Swifty, modern UIAlertController wrapper. -
CRNotifications
Custom in-app notifications. -
AwaitToast
๐ An async waiting toast with basic toast. Inspired by facebook posting toast -
Zingle
Zingle โ An alert will display underneath your UINavigationBar ๐ -
FCAlertView
FCAlertView is a Flat Customizable AlertView for iOS (Swift) -
Indicate
Interactive notification pop-over (aka "Toast) modeled after the iOS AirPods and Apple Pencil indicator. -
ALRT
An easier constructor for UIAlertController. Present an alert from anywhere. -
Notie
In-app notification in Swift, with customizable buttons and input text field. -
Kamagari
Simple UIAlertController builder class in Swift. -
HYAlertController
A Simple And Minimalist iOS AlertController -
KRAlertController
A beautiful alert controller for your iOS. -
GSAlert
[deprecated] UIAlertController support iOS 7+ and written in swift. -
SwiftyToggler
A Swifty way to toggle your features. -
SwiftAlertController
Nice and easy UIAlertController extensions
Appwrite - The Open Source Firebase alternative introduces iOS support
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
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.