A non-intrusive Swift UI library for implementing draggable overlay interfaces like Apple Maps and Shortcuts on iOS.
OverlayContainer is a Swift UI library for iOS that helps developers implement draggable overlay interfaces, similar to those in Apple Maps and Shortcuts. It provides a container view controller that allows a view controller to be dragged up and down with customizable notches, enabling non-intrusive overlay-based navigation and content presentation.
iOS developers building apps that require interactive, draggable overlay panels, such as mapping applications, detail views, or settings panels that need to reveal underlying content.
Developers choose OverlayContainer for its lightweight, non-intrusive design that mimics Apple's native overlay interactions, offering extensive customization, smooth animations, and seamless scroll view coordination without compromising project architecture.
Non-intrusive iOS UI library to implement overlay based interfaces
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Closely mimics Apple's overlay behavior from Maps and Shortcuts, with built-in rubber band effects and smooth animations for a polished user experience.
Offers extensive control through delegate methods for unlimited notches, gesture handling, and animation policies, allowing tailored overlay behaviors.
Integrates with UIScrollView to synchronize overlay dragging and content scrolling, ensuring a natural feel as shown in the README examples.
Designed to avoid corrupting project structure, giving developers full control over layout and UI without imposing constraints.
The flexibleHeight style can cause performance issues with table or collection views due to extra layout computations during dragging, as cautioned in the README.
Handling safe areas correctly is error-prone, especially with expandableHeight style, requiring manual adjustments to avoid UI glitches, as detailed in the advanced usage section.
Requires implementing multiple delegate methods and managing notches programmatically, which can be cumbersome for simple overlay implementations compared to native alternatives.