[READ-ONLY] Mirror of https://github.com/mergesort/GenericCells. Creating generic UITableViewCells and UICollectionViewCells instead of subclasses.
uicollectionview uitableview
README.md

GenericCells #

Creating UITableViewCell and UICollectionViewCell subclasses is so Swift 2 point zero. #

Pod Version Swift Version License MIT Plaform


Introducing, GenericCells!… Capitalizing on Swift's generics, we can get all the benefits of a custom UITableViewCell or UICollectionViewCell class, without the hassle of a new class for each of them.


Let's show you how to use it. #

Create a UIView subclass for the layout you want:

final class MyView: UIView {

    let imageView: UIImageView
    let titleLabel: UILabel
    let subtitleLabel: UILabel
    // And add more views to your heart's content

}

Register the cell with a UITableView or UICollectionView:

tableView.register(GenericTableCell<MyView>.self)
collectionView.register(GenericCollectionCell<MyView>.self)

Dequeue the cell with a UITableView or UICollectionView:

let cell = tableView.dequeueReusableCell(forIndexPath: indexPath) as GenericTableCell<MyView>
let cell = collectionView.dequeueReusableCell(forIndexPath: indexPath) as GenericCollectionCell<MyView>

And customize it to your heart's content. The view you wish to access will be available via the .customView property:

cell.customView.titleLabel.text = "This library rules!"
cell.customView.imageView.image = UIImage(named: "success")

Extra credit, let's add recycling support. Extend your view with the ReusableGenericView protocol:

extension MyView: ReusableGenericView {

    func prepareForReuse() {
        self.titleLabel.text = ""
        self.subtitleLabel.text = ""
        self.imageView.image = nil
    }

}

And it will get called when the cell is recycled.

Installation #

You can use SPM to install GenericCells.

You can also use CocoaPods to install GenericCells by adding it to your Podfile:

platform :ios, '9.0'
use_frameworks!

pod 'GenericCells'

Or install it manually by downloading GenericTableCell.swift, GenericCollectionCell.swift, and ReusableView.swift, and dropping it in your project.

About me #

Hi, I'm Joe everywhere on the web, but especially on Twitter.

License #

See the license for more information about how you can use GenericCells.

Is that it? #

Yes, that's it. And if you don't like it, well sorry, here's a rainbow. 🌈