普通我们使用UITableView时我们总是要定义一个ID,然后注册
tableview.register(cellClass: AnyClass?, forCellReuseIdentifier: String)
tableView.dequeueReusableCell(withIdentifier: String, for: IndexPath)
定义、注册、使用时我们会用到三次CellReuseIdentifier,我们通过用协议和泛型简化UITableView的使用,即不再需要这三次的Identifier
实现步骤
1、写协议
//
// ReusableCell.swift
// reusecell
//
// Created by targetcloud on 2017/3/26.
// Copyright © 2017年 targetcloud. All rights reserved.
//
import UIKit
protocol ReusableCell : class{
static var reuseableIdentifier :String {get}
}
extension ReusableCell where Self : UITableViewCell{
static var reuseableIdentifier :String{
return "\(self)"
}
}
extension UITableView{
func registerCell<T : UITableViewCell >(_ cell :T.Type)where T : ReusableCell{
register(cell, forCellReuseIdentifier: T.reuseableIdentifier)
}
func dequeReusableCell<T : UITableViewCell>(indexPath : IndexPath) ->T where T : ReusableCell{
return dequeueReusableCell(withIdentifier: T.reuseableIdentifier, for: indexPath