A SwiftUI and UIKit grid scroll view for iOS that supports zooming and touch tracking on image arrays.
BSZoomGridScrollView is an iOS UI framework that provides a grid scroll view capable of displaying arrays of images with zooming and touch tracking functionality. It solves the problem of creating interactive, gesture-responsive grid interfaces in both SwiftUI and UIKit environments. The framework handles complex UI interactions like long press and drag gestures out of the box.
iOS developers building apps that require interactive image grids, such as photo galleries, browsing interfaces, or any application needing zoomable and scrollable grid layouts. It is particularly useful for those working with both SwiftUI and UIKit.
Developers choose BSZoomGridScrollView for its seamless integration with both SwiftUI and UIKit, reducing the need to build custom grid solutions from scratch. Its unique selling point is the combination of zoom, touch tracking, and gesture-driven image selection in a single, easy-to-implement component.
Fun GridScrollView written in SwiftUI + Combine, bridging between UIKit
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Fully supports both SwiftUI and UIKit with separate code examples, enabling unified development across modern iOS projects without rewriting UI layers.
Provides zoom, touch tracking, and gesture-driven selection (long press and drag) automatically, as shown in the GIF demo and code snippets, reducing custom gesture handling.
Allows configuration of columns, rows, and zoom effects through simple parameters like numberOfColumns and powerOfZoomBounce, demonstrated in the SwiftUI example.
With minimal code—just importing and initializing—developers can add a functional grid scroll view, highlighted in the 'At a Glance' snippet with few steps.
Designed specifically for UIImage arrays (itemsToZoom parameter), limiting use for grids with other data types like text or videos without modifications.
The README states it was 'done for my fun,' suggesting potential lack of ongoing updates, bug fixes, or professional support, which could be risky for production apps.
Example usage shows high column counts (e.g., 200 columns), but without optimizations like lazy loading, it might struggle with large image sets, leading to memory or scrolling issues.
Missing common grid library features such as dynamic item insertion/deletion, advanced animations, or accessibility hooks, focusing only on basic zoom and selection.