iOS学习开发iOS开发技术分享

Swift4 使用 "协议+泛型"简化UIT

2018-12-12  本文已影响0人  iOS雯Ping

定义、注册、使用时我们会用到三次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
     }
}
上一篇下一篇

猜你喜欢

热点阅读