An iOS component for customizing empty state views in UITableView and UICollectionView.
WLEmptyState is an iOS component that customizes the empty state views for UITableView and UICollectionView when their datasets are empty. It solves the problem of blank screens by displaying informative messages, images, or custom views, enhancing the user experience in iOS applications.
iOS developers building apps with UITableView or UICollectionView who want to improve user experience by providing meaningful feedback when data is unavailable.
Developers choose WLEmptyState for its easy integration via protocols, flexibility in customization, and seamless handling of empty states without requiring significant changes to existing view controller code.
WLEmptyState is an iOS based component that lets you customize the view when the dataset of a UITableView or a UICollectionView is empty. We created a sample project with the WLEmptyState component to show how you can use it.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Conforming to WLEmptyStateDataSource allows easy customization of images, titles, and descriptions with minimal code, as demonstrated in the README's examples for tailored empty states.
The customViewForEmptyState() method enables developers to provide any UIView, such as activity indicators or branded layouts, offering flexibility beyond default templates.
Uses method swizzling to automatically hook into view controllers, reducing boilerplate code and ensuring empty states appear without manual checks in each controller.
Through WLEmptyStateDelegate, developers can disable scrolling when empty states are active, preventing meaningless user interactions and improving UX.
Reliance on method swizzling for automatic setup can lead to runtime conflicts with other libraries, complicate debugging, and introduce maintenance challenges in complex apps.
Only supports UITableView and UICollectionView; developers needing empty states for SwiftUI, other UIKit components, or cross-platform solutions must seek alternatives.
Requires calling configure() in AppDelegate, which adds a global dependency that may interfere with app initialization, testing, or modular architectures.