[![CI Status](http://img.shields.io/travis/Fernando Ortiz/DequeuableRegistrable.svg?style=flat)](https://travis-ci.org/Fernando Ortiz/DequeuableRegistrable)
DequeuableRegistrable is a simple set of protocol extensions that allow registering and dequeuing cells and footers/headers (either from UITableView or UICollectionView) without using unsafe strings or explicit casting.
To run the example project, clone the repo, and run pod install
from the Example directory first.
- iOS 9.0 or higher
- Swift 3.0 or higher
DequeuableRegistrable is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "DequeuableRegistrable", :git => "https://github.com/fmo91/DequeuableRegistrable/"
DequeuableRegistrable turns registering from this:
tableView.register(UINib(nibName: "DogCell", bundle: nil), forCellReuseIdentifier: "DogCell")
to this
DogCell.register(in: tableView)
and turns dequeuing from this:
let cell = tableView.dequeueReusableCell(withIdentifier: "DogCell") as! DogCell
to this:
let cell = DogCell.dequeue(from: tableView)
// cell is DogCell, not UITableViewCell. It's already casted.
at the only cost of doing this:
extension DogCell: Registrable, Dequeuable {}
DequeuableRegistrable consists in three simple protocols:
Identifiable
: It allows to identify any kind of object by providing a key string. In case of cells, that string is the reusable identifier.Dequeuable
: Inherits from Identifiable. It allows to dequeue cells from UICollectionView or UITableView using the reusable identifier provided by Identifiable protocol.Registrable
: Inherits from Identifiable. It allows to register cells in UICollectionView or UITableView using the reusable identifier provided by Identifiable protocol, and a nib object that Registrable protocol requires.
All of these protocols have extensions that returns defaults values that match the class name. So, for example, if you have a ABCCell
class, then its default reusable identifier would be "ABCCell"
, and its UINib
would be UINib(nibName: "ABCCell")
Fernando Ortiz, ortizfernandomartin@gmail.com
DequeuableRegistrable is available under the MIT license. See the LICENSE file for more info.