定义、注册、使用时我们会用到三次CellReuseldentifier,我们通过用协议和泛型简化UITableView的使用, 即不再需要这三次的Identifier
步骤:
1.定义协议
import UIKit
protocol RegisterCellorNib { }
extension RegisterCellorNib {
static var identifier:String {
return "X (self)"
}
static var nib: UINib?{
return UINib (nibName: "(self)", bundle: nil)
}
}
1.遵守协议,快速创建注册/重用UITableView
import UIKit
extension UITableView {
/**
T遵守RegisterCellorNib协议
*/
func yq_ registerCell<T:UITableViewCell>(cell:T.Type) where T:RegisterCellorNib {
ifletnib=T.nibf11xib{// xib
register(nib, forCellReuseldentifier:T. identifie
}else { // cell
register(cell, forCellReuseIdentifier: T. identif
ier)
}
}
func yq_ dequeueReuserableCell<T:UITableViewCell>( indexPath: IndexPath)- >T where T: RegisterCellorNib{
return dequeueReusableCell(withIdentifier: T. identifier, for: indexPath) as! T
}
}