IGListKit —将UITableView迁移到IGListCollectionView
IGListKit是Instagram发布的数据驱动框架,可帮助我们创建快速灵活的UICollectionViews。 实际上,它还提供了许多其他功能,例如动画和线性复杂度差异计算,使我们的应用看起来更凉快。
今天,我将展示如何将UITableView
迁移到IGListKit。 首先,我们需要一个使用UITableView
的应用程序,因此我们将使用Thiago Lioy的Marvel App。 您可以在github上查看他的代码,以及他如何以中等方式创建这个很棒的应用程序。
在安装IGListKit并开始使用它之前,让我们看一下Lioy的代码。 在CharactersViewController
我们可以看到TableView以及它的委托和数据源,其中使用了Character
数组。
首先,我们需要安装IGListKit。 这可以通过可可足类或迦太基来完成。 使用cocoapods,您的pod文件中将具有以下内容:
pod 'IGListKit', :git => 'https://github.com/Instagram/IGListKit.git', :branch => 'master'
现在,我们可以从更改Character
模型开始。 我们的模型应符合IGListDiffable协议。 我们可以通过扩展来做到这一点
IGListKit使用了一个有趣的适配器概念,它可以将对象分解为称为SectionControllers的各个部分。 每个SectionController负责一个可以具有多个单元格的节,但是在此示例中,我们将仅具有一个单元格。
现在,我们可以创建一个名为tableCharacterViewController.swift的新UIViewController
。 在此文件中,我们有一个IGListCollectionView,一个IGListAdapter并实现IGListAdapterDataSource。
您可以在github上检查此应用程序。 您可以在第二篇文章中检查如何使用不同的单元来改进IGListCollectionView并处理触摸事件。