Skip to content

Instantly share code, notes, and snippets.

@justinmakaila
Last active August 29, 2015 14:14
Show Gist options
  • Select an option

  • Save justinmakaila/83014b97e774596a1a58 to your computer and use it in GitHub Desktop.

Select an option

Save justinmakaila/83014b97e774596a1a58 to your computer and use it in GitHub Desktop.
UITableView+NibView
import UIKit
extension UITableView {
// MARK: - Dequeue Nib Views
func dequeueNibView<T: UITableViewCell where T: ReuseIdentifierProtocol>(view: T.Type) -> T {
return dequeueReusableCellWithIdentifier(view.reuseIdentifier()) as T
}
func dequeueHeaderFooterNibView<T: UITableViewHeaderFooterView where T: ReuseIdentifierProtocol>(view: T.Type) -> T {
return dequeueReusableHeaderFooterViewWithIdentifier(view.reuseIdentifier()) as T
}
// MARK: - Register Nib Views
func registerNibView<T: UITableViewCell where T: CellNibView>(view: T.Type) {
registerNibView(view, reuseIdentifier: view.reuseIdentifier())
}
func registerNibView<T: UITableViewCell where T: CellNibView>(view: T.Type, reuseIdentifier: String) {
registerNib(view.nib(), forCellReuseIdentifier: reuseIdentifier)
}
func registerHeaderFooterNibView<T: UITableViewHeaderFooterView where T: CellNibView>(view: T.Type) {
registerHeaderFooterNibView(view, reuseIdentifier: view.reuseIdentifier())
}
func registerHeaderFooterNibView<T: UITableViewHeaderFooterView where T: CellNibView>(view: T.Type, reuseIdentifier: String) {
registerNib(view.nib(), forHeaderFooterViewReuseIdentifier: reuseIdentifier)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment