TableViewDiffableDataSource
open class TableViewDiffableDataSource<SectionIdentifierType, ItemIdentifierType> : NSObject, UITableViewDataSource where SectionIdentifierType : Hashable, ItemIdentifierType : Hashable
A class for backporting UITableViewDiffableDataSource introduced in iOS 13.0+, tvOS 13.0+.
Represents the data model object for UITableView that can be applies the
changes with automatic diffing.
-
The type of closure providing the cell.
Declaration
Swift
public typealias CellProvider = (UITableView, IndexPath, ItemIdentifierType) -> UITableViewCell? -
The default animation to updating the views.
Declaration
Swift
public var defaultRowAnimation: UITableView.RowAnimation -
Creates a new data source.
Declaration
Swift
public init(tableView: UITableView, cellProvider: @escaping CellProvider)Parameters
tableViewA table view instance to be managed.
cellProviderA closure to dequeue the cell for rows.
-
Applies given snapshot to perform automatic diffing update.
Declaration
Swift
public func apply(_ snapshot: DiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType>, animatingDifferences: Bool = true)Parameters
snapshotA snapshot object to be applied to data model.
animatingDifferencesA Boolean value indicating whether to update with diffing animation.
-
Returns a new snapshot object of current state.
Declaration
Swift
public func snapshot() -> DiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType>Return Value
A new snapshot object of current state.
-
Returns an item identifier for given index path.
Declaration
Swift
public func itemIdentifier(for indexPath: IndexPath) -> ItemIdentifierType?Parameters
indexPathAn index path for the item identifier.
Return Value
An item identifier for given index path.
-
Returns an index path for given item identifier.
Declaration
Swift
public func indexPath(for itemIdentifier: ItemIdentifierType) -> IndexPath?Parameters
itemIdentifierAn identifier of item.
Return Value
An index path for given item identifier.
-
Returns the number of sections in the data source.
Declaration
Swift
public func numberOfSections(in tableView: UITableView) -> IntParameters
tableViewA table view instance managed by
self.Return Value
The number of sections in the data source.
-
Returns the number of items in the specified section.
Declaration
Swift
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> IntParameters
tableViewA table view instance managed by
self.sectionAn index of section.
Return Value
The number of items in the specified section.
-
Returns a cell for row at specified index path.
Declaration
Swift
open func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCellParameters
tableViewA table view instance managed by
self.indexPathAn index path for cell.
Return Value
A cell for row at specified index path.
View on GitHub
TableViewDiffableDataSource Class Reference