Swift4 使用 "协议+泛型"简化UITableView的使用

定义、注册、使用时我们会用到三次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(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( indexPath: IndexPath)- >T where T: RegisterCellorNib{
return dequeueReusableCell(withIdentifier: T. identifier, for: indexPath) as! T
     }
}

你可能感兴趣的:(Swift4 使用 "协议+泛型"简化UITableView的使用)