This page provides detailed documentation for the UITableView-DataSet library. It covers the features, installation process, usage guidelines, and additional resources for developers looking to integrate this library into their iOS app.


  • Customizable data loading and empty state handling for UITableView
  • Support for displaying loading spinners, error messages, and empty states when a table view has no data to display
  • Easy integration with existing table view data sources and delegate methods
  • Seamless animation and transition support for smooth user experience
  • Support for customizing the appearance and behavior of loading and empty state views


To integrate the UITableView-DataSet library into your iOS project, follow the steps below:

  1. Ensure you have CocoaPods installed. If not, install it by executing the command sudo gem install cocoapods in the terminal.
  2. Create a Podfile in your project directory and add the following line:
// Podfile
platform :ios, '10.0'
target 'YourProjectTargetName' do
  pod 'UITableView-DataSet'
  1. Save the Podfile and run the command pod install in the terminal to install the UITableView-DataSet library.
  2. Open the .xcworkspace file generated by CocoaPods.
  3. You can now import the library in your UIViewController subclass using import UIKit and import DZNEmptyDataSet.


To use the UITableView-DataSet library, follow the steps below:

  1. Set the class of your table view’s data source and delegate to your view controller: YourViewController: UITableViewDataSource, UITableViewDelegate.
  2. Implement the required data source methods (i.e., tableView(_:numberOfRowsInSection:) and tableView(_:cellForRowAt:)) and delegate methods (i.e., tableView(_:didSelectRowAt:)) in your view controller.
  3. Conform to the DZNEmptyDataSetSource and DZNEmptyDataSetDelegate protocols in your view controller:
class YourViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, DZNEmptyDataSetSource, DZNEmptyDataSetDelegate {
    // Your code here
  1. Add the necessary delegate methods for the empty dataset:
func image(forEmptyDataSet scrollView: UIScrollView) -> UIImage? {
    // Return an image to be displayed

func title(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
    // Return the title for the empty state

func description(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
    // Return the description text for the empty state

func buttonTitle(forEmptyDataSet scrollView: UIScrollView, for state: UIControl.State) -> NSAttributedString? {
    // Return the button title for the empty state (optional)

func emptyDataSet(_ scrollView: UIScrollView, didTapButton button: UIButton) {
    // Handle button tap event for the empty state (optional)

For a complete list of available delegate and data source methods, refer to the official documentation.

Additional Resources

Find more resources and examples related to the UITableView-DataSet library below:

Explore these resources to get a better understanding of how to implement and customize the empty state views for your table view using UITableView-DataSet.