美文网首页iOS学习开发iOS开发技术分享
Swift4 使用 "协议+泛型"简化UIT

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

作者: iOS雯Ping | 来源:发表于2018-12-12 18:40 被阅读0次

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

    相关文章

      网友评论

        本文标题:Swift4 使用 "协议+泛型"简化UIT

        本文链接:https://www.haomeiwen.com/subject/agvphqtx.html