A customizable iOS swipe-panel UI component inspired by Apple Maps, supporting animated transitions, scroll views, and flexible layouts.
ContainerController is an open-source Swift UI component that implements a swipeable panel interface, inspired by the design of Apple Maps and Stocks apps. It solves the need for interactive, draggable views in iOS applications by providing a customizable container that can animate between different positions and integrate with various scroll views.
iOS developers building applications that require interactive bottom sheets, sliding menus, or modal panels, such as maps, music players, finance apps, or ride-sharing interfaces.
Developers choose ContainerController for its out-of-the-box replication of Apple's swipe-panel design, extensive customization options, and seamless integration with native iOS scroll views, reducing development time for complex UI interactions.
👉↕️📱ContainerController 🧩✨⚙️ is a UI Component Swipe-Panel (Customizable). 💡 The idea is copied from the app: Apple Maps, Stocks. Swift version
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Directly mimics the swipeable panel from Apple Maps, enabling developers to implement a familiar iOS design pattern with minimal code, as shown in the GIF previews and examples.
Offers granular control over layout, including corner radius, shadows, background blur, and insets for both portrait and landscape orientations, detailed in the settings section.
Seamlessly embeds UITableView, UICollectionView, or UITextView with built-in gesture coordination, making it ideal for content-rich panels, as evidenced by the add(scrollView:) method.
Allows pinning custom views to the top or bottom of the panel, enhancing UI flexibility, demonstrated in the examples with header and footer views.
Integrating scroll views necessitates manually calling four ContainerController methods in the scroll view delegate, adding complexity and error risk, as admitted in the README.
Built exclusively for UIKit, it doesn't support SwiftUI natively, forcing developers to use bridges or stick to older frameworks, limiting adoption in modern iOS apps.
Configuration involves creating layout objects and handling multiple settings steps, which can be cumbersome compared to more drop-in solutions for simple use cases.