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并处理触摸事件。