//MARK: -UItableVIEwDataSource func numberOfSections(in tableVIEw: UItableVIEw) -> Int { return itemsArray!.count } func tableVIEw(_ tableVIEw: UItableVIEw,numberOfRowsInSection section: Int) -> Int { return itemsArray![section].count } func tableVIEw(_ tableVIEw: UItableVIEw,cellForRowAt indexPath: IndexPath) -> UItableVIEwCell { let cell: UItableVIEwCell = tableVIEw.dequeueReusableCell(withIDentifIEr: IDentifIErArray![indexPath.section] )! //获取相应的模型数据 let item = itemAt(indexpath: indexPath) //执行回调 cellBlock!(cell,item,indexPath) return cell }tableVIEw中设置数据源代码
//MARK: - lazy load tableVIEw lazy var tableVIEw:UItableVIEw = { let tableVIEw:UItableVIEw = UItableVIEw(frame: CGRect(x: 0,y: 0,wIDth: UIScreen.main.bounds.size.wIDth,height: UIScreen.main.bounds.size.height),style: .grouped) var cellOneData = [AnyObject]() var cellTwoData = [AnyObject]() for i in 0..<5 { cellOneData.append("我是组一中第\(i)行的数据" as AnyObject) } for i in 0..<5 { cellTwoData.append("我和组一长的很像但我是组二" as AnyObject) } //分离数据源 self.dataSource = DataSource(itemsArray: [cellOneData,cellTwoData],IDentifIErs: [self.tableCellOneID,self.tableCellTwoID],cellBlock: { (cell,indexPath) in //tableVIEwCellOne和tableVIEwCellTwo就是简单的继承了一下UItableVIEwCell if indexPath.section == 0 { cell.textLabel?.text = item as? String } else { cell.textLabel?.text = item as? String } }) //直接把对象赋值给tableVIEw.dataSource不行,没有保存对象 tableVIEw.dataSource = self.dataSource //注册两个cell tableVIEw.register(tableVIEwCellOne.self,forCellReuseIDentifIEr: self.tableCellOneID) tableVIEw.register(tableVIEwCellTwo.self,forCellReuseIDentifIEr: self.tableCellTwoID) return tableVIEw }()如果对您有帮助,Star一下吧 Github地址:DataSource代码 总结
以上是内存溢出为你收集整理的控制器减负之分离数据源全部内容,希望文章能够帮你解决控制器减负之分离数据源所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)