Mozaic 是一个用于构建自定义 CollectionViews 的库。它提供了一种简单的接口,用于根据封装的列和三种单元格类型组装拼贴布局。
安装
Mozaic 通过 CocoaPods 提供。要安装它,只需在 Podfile 中添加以下行
pod 'Mozaic'
实现和用法
将 Mozaic 导入将使用它的控制器。
import Mozaic
现在,创建一个具有 Mozaic 布局的常量,将其属性分配给您的 collectionView 布局,并将其委托分配给实际类。
override func viewDidLoad() {
super.viewDidLoad()
...
let mozaicLayout = Mozaic()
self.yourCollectionView.collectionViewLayout = mozaicLayout
mozaicLayout.delegate = self
...
}
此时,您将看到 Xcode 将显示一个错误,指出 mozaicLayout.delegate = self
无法赋值。这是因为您尚未将您的类扩展为 MozaicDelegate
。
要修复此问题,请这样做
class YourViewController: MozaicDelegate {
...
}
现在,您将看到一个错误会显示出来,指出您的类不遵守 MozaicDelegate 协议,并且 Xcode 将要求您添加协议存根。在点击添加按钮后,将出现 setStyleOfEachColumn
方法。
此方法返回一个包含数组数组的数组,因此如果您传递一个像这样的数组
func setStyleOfEachColumn() -> [[MozaicCellType]] {
return [[.Medium, .Small, .Medium], [.Large, .Small, .Small]]
}
您将拥有如下所示的收藏
解释:每个数组将在 collectionView 中生成一列,每列都将遵循其 cellsStyle 模式。因此,第一个列,在这种情况下,将重复绘制 [.Medium, .Small, .Medium]
顺序,直到必要时。
MozaicLayout 将为传递的每个数组生成一列,因此您在这方面没有关于列数的最小或最大限制。请勿轻视这一点!
单元格的大小基于列宽和列数。 LargeCellWidth = collectionViewContentWidth / numberOfColumns
可选方法
Mozaic 还支持这些可选方法。
func setCellHeightProportion() -> CGFloat //Default return = 1.0
func setHorizontalSpaceBetweenCells() -> CGFloat //Default return = 15.0
func setVerticalSpaceBetweenCells() -> CGFloat //Default return = 15.0
作者
卢卡·弗朗萨·戈梅斯·费雷拉 - luccafgf - [email protected]
许可证
Mozaic 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。