Powerful Bottom Sheet component with content base size, interactive dismissal and navigation controller support
Bottom Sheet alternatives and similar libraries
Based on the "Alert & Action Sheet" category.
Alternatively, view BottomSheet alternatives based on common mentions on social networks and blogs.
Alerts & Pickers9.5 0.0 Bottom Sheet VS Alerts & PickersAdvanced usage of UIAlertController and pickers based on it: Telegram, Contacts, Location, PhotoLibrary, Country, Phone Code, Currency, Date...
BulletinBoard9.3 0.0 Bottom Sheet VS BulletinBoardGeneral-purpose contextual cards for iOS
Cards9.1 0.0 Bottom Sheet VS CardsAwesome iOS 11 appstore cards in swift 5.
SPAlert7.0 6.3 Bottom Sheet VS SPAlertNative alert from Apple Music & Feedback. Contains Done, Heart & Message and other presets. [Moved to: https://github.com/ivanvorobei/SPAlert]
StatusAlert6.4 0.0 Bottom Sheet VS StatusAlertDisplay Apple system-like self-hiding status alerts. It is well suited for notifying user without interrupting user flow in iOS-like way.
RMessage5.2 0.0 Bottom Sheet VS RMessageA crisp in-app notification/message banner built in Swift.
CFNotify5.2 0.0 Bottom Sheet VS CFNotifyA customizable framework to create draggable views
CleanyModal5.1 0.0 Bottom Sheet VS CleanyModalSwift UI Kit to present clean modal/alert
InAppNotify5.1 0.0 Bottom Sheet VS InAppNotifySwift library to manage in app notification in swift language, like WhatsApp, Telegram, Frind, ecc.
Alertift4.1 0.8 Bottom Sheet VS AlertiftSwifty, modern UIAlertController wrapper.
FloatingActionSheetControllerFloatingActionSheetController is a cool design ActionSheetController library written in Swift2.
PCLBlurEffectAlert3.1 0.0 L1 Bottom Sheet VS PCLBlurEffectAlertSwift AlertController with UIVisualeffectview
JDropDownAlert2.5 0.0 Bottom Sheet VS JDropDownAlertSimple DropDown Alert View For Any iOS Projects.
ALRT2.5 0.0 Bottom Sheet VS ALRTAn easier constructor for UIAlertController. Present an alert from anywhere.
NotchyAlert1.8 0.0 Bottom Sheet VS NotchyAlert🚨Use the iPhone X Notch to display alerts. 🚨
CatAlertControllerUse UIAlertController like a boss.
Sheet0.3 3.6 Bottom Sheet VS SheetShow a workflow of view controllers as an action sheet. Very light weight. No configuration needed.
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 Bottom Sheet or a related project?
Bottom Sheet component is designed to handle any content, including a scrolling one.
- ✅ use any content size, and it will adapt
- ✅ use scrollable content:
- ✅ dismiss interactively by swipe-down or just tapping on an empty space
- ✅ build flows inside using
- ✅ supports all system transitions: push and (interactive) pop
- ✅ transition animated between different content sizes
- ✅ Customize appearance:
- pull bar visibility
- corner radius
- shadow background color
How it looks like
|Adapts to content size||Interactive dismissal|
NavigationController inside Bottom Sheet
|Push and pop transitions||Interactive pop transition|
Swift Package Manager
To integrate Bottom Sheet into your Xcode project using Swift Package Manager, add it to the dependencies value of your
dependencies: [ .package(url: "https://github.com/joomcode/BottomSheet", from: "2.0.0") ]
This repo contains demo, which can be a great start for understanding Bottom Sheet usage, but here are simple steps to follow:
UIViewControllerto present and set content's size by preferredContentSize property
- (optional) Conform to ScrollableBottomSheetPresentedController if your view controller is list-based
- Present by using presentBottomSheet(viewController:configuration:)
If you want to build flows, use
presentBottomSheetInsideNavigationController( viewController: viewControllerToPresent, configuration: .default )
You can customize appearance passing configuration parameter
presentBottomSheet( viewController: viewControllerToPresent, configuration: BottomSheetConfiguration( cornerRadius: 10, pullBarConfiguration: .visible(.init(height: 20)), shadowConfiguration: .init(backgroundColor: UIColor.black.withAlphaComponent(0.6)) ) )
Read the article on Medium for betting understanding of how it works under the hood