A flexible iOS bottom sheet component that adapts to any content size and supports scrolling, navigation, and interactive dismissal.
BottomSheet is a Swift library for iOS that provides a customizable bottom sheet component capable of handling any content, including scrollable views like UITableView or UICollectionView. It simplifies presenting modal interfaces with adaptive sizing and smooth interactions, making it ideal for building modern iOS app interfaces.
iOS developers building apps that require modal bottom sheet interfaces, especially those needing integration with scrollable content or navigation flows within the sheet.
Developers choose BottomSheet for its seamless support of scrollable content and built-in navigation controller, allowing complex flows and adaptive sizing without compromising on native iOS interactions and customization.
Bottom Sheet for iOS
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically adjusts to the preferredContentSize of the presented view controller, eliminating manual sizing calculations as highlighted in the getting started steps.
Seamlessly handles UICollectionView, UITableView, or UIScrollView by conforming to ScrollableBottomSheetPresentedController, making it ideal for lists without extra hacks.
Includes BottomSheetNavigationController for push and pop transitions, enabling complex multi-step flows inside the sheet, demonstrated in the demo gifs.
Supports swipe-down and tap-to-dismiss gestures, providing a native-feeling user experience similar to iOS system modals.
Built exclusively for UIKit, requiring UIViewControllerRepresentable wrappers for SwiftUI projects, which adds complexity and isn't natively supported.
Requires view controllers to explicitly conform to ScrollableBottomSheetPresentedController for scrollable content, adding an extra step compared to more automatic solutions.
Relies on a sparse README and a Medium article for guidance, with fewer third-party extensions or troubleshooting resources than popular UI libraries.