创建自己的UICollectionView API
在本文中,我们将创建一个外部框架,该框架将公开一些单元格,背景线和水平线装饰UICollectionViewFlowLayout
以及一个垂直的自定义UICollectionViewFlowLayout
,该UICollectionViewFlowLayout
管理单元格之间的边距和填充。
为什么要使用UICollectionview?
根据您的应用程序,使用UICollectionView
来构建屏幕可以节省大量时间,主要是在您的屏幕是面向数据和上下文的情况下。
在两个其他对象之间添加一个单元比更新约束来显示或隐藏UI元素要容易得多。
UICollectionView
的强大功能是DecorationView
。 在不增加单元格复杂性的情况下,您可以在其中一些背景后面添加背景,并在整个应用程序中重复使用它们。
最后, UICollectionView
允许仅用几行代码即可对屏幕中的更改进行动画处理。
为什么要使用API?
大多数情况下,应用程序屏幕的设计是相同的:在许多屏幕中,相同的按钮,相同的元素只是内容不同但布局相同。
创建API的目的是以最简单的方式使用这些元素。 UICollectionView
API的主要目标是花费更少的时间在构建屏幕上,并花费更多的时间来实现和测试逻辑,改善细节并拥有更易于维护的代码。
另一个优点是在应用程序中提供总体UI一致性,并尽可能与您的设计师提供的模型相似地创建屏幕。
科洛尔
Apple提供的用于实现UICollectionView
的API是面向indexPath的。 在oui.sncf,我们创建了一个名为Collor的顶层,以实现面向数据的实现。 该库的主要目标是在一个文件中描述UICollectionView
的结构。
在继续阅读本文之前,您应该看一下这两篇文章:
Collor:UICollectionView的面向MVVM数据的框架
我们已经建立了一年的框架,以简化和加速我们的UICollectionView的开发。 UICollectionView:如何轻松处理更新
当您使用CollectionViews或TableViews时,困难的部分是当您需要添加,删除,移动一些单元格时… medium.com
我们走吧
1)创建自己的框架
为了优化编译时间并最小化依赖关系,最好的方法是在工作空间中创建一个框架。 我们将其命名为CollorAPI 。 如果您打算在其他项目中使用此框架,则建议您创建一个私有容器。
我们在这里不解释创建框架的过程,如果需要,您可以找到很多教程:
模块化iOS应用程序
“只要离开您的计算机去喝咖啡,应用程序就会编译!” medium.com
2)唯一的节描述符
大多数时候,唯一可定制的节描述符足以满足我们的需求。
4)垂直空间
必须对每个通用单元进行边缘到边缘设计。 然后,将在collectionView的布局中以及带有部分插图的地方处理边距和填充。 通过应用此规则,无需增加单元格的复杂性或添加空白单元格来填补空白,就更容易遵守设计屏幕。
首先,我们在builder
实现此功能:
最后,collectionData如下所示:
在oui.sncf处 ,有11种装饰类型。 它们使您可以添加票证背景或建立旅程时间表。 对于时间轴,我们在部分构建器内部创建了一个嵌套构建器。 通过这种方式,角色可以很好地分离,并且其他开发人员可以轻松使用该API。 单元在布局中向右移动,以便重用它们,而不是使用内部偏移量创建新单元。
继续,在本文中,我们介绍了您未来框架的基础。 现在就取决于您的需求了!
感谢您的阅读,并让我知道您在Twitter上的想法。