CollectionViewWaterfallLayout 0.5.0

CollectionViewWaterfallLayout 0.5.0

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最新发布2019年9月
SPM支持SPM

Eric Cerney 维护。




CollectionViewWaterfallLayout

由 Pinterest 启发的 UICollectionView 布局

注意:已针对 Swift 5.0 进行更新。这是一个从 Swift 2.0 的大幅升级,如果在使用过程中遇到任何问题,请提交问题/修复。谢谢!

CollectionViewWaterfallLayout 是一个完全用 Swift 编写的 UICollectionViewLayout 子类。该类基于由 CHTCollectionViewWaterfallLayout 构建,该布局由 chiahsien 在 Objective-C 中编写。该类尽可能使用最新 Swifty 事物来保持代码与当前设计模式同步。

原始布局是受 Pinterest 启发的。

功能

  • 易于使用 - 如果您已经习惯了使用 UICollectionViewFlowLayout,那么这将显得很自然
  • 高度可定制
  • 出色的性能
  • 支持头部和尾部

屏幕截图

Real World Example Demo Example

前提条件

  • ARM架构
  • iOS 8及以上
  • Xcode 10及以上
  • Swift 5.0

安装

CollectionViewWaterfallLayout可以通过CocoaPods获取。要安装它,只需在Podfile中添加以下行

pod "CollectionViewWaterfallLayout"

如何使用

请确保在您打算使用CollectionViewWaterfallLayout的文件中导入pod

import CollectionViewWaterfallLayout

查看示例项目,了解如何使用storyboards设置视图,并通过编程创建和自定义瀑布布局。

可定制属性

以下是您可以根据需要更改以自定义布局的公共属性及其默认值

var columnCount: Int = 2
var minimumColumnSpacing: Float = 10.0
var minimumInteritemSpacing: Float = 10.0
var headerHeight: Float = 0.0
var footerHeight: Float = 0.0
var headerInset: UIEdgeInsets = .zero
var footerInset: UIEdgeInsets = .zero
var sectionInset: UIEdgeInsets = .zero

必需协议

您的集合视图的代理必须遵守CollectionViewWaterfallLayoutDelegate协议并实现必需的方法,您需要做的就是返回项目的原始大小

func collectionView(collectionView: UICollectionView, layout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize

可选协议

您可以通过以下可选协议方法动态自定义布局属性。

func collectionView(_ collectionView: UICollectionView, layout: UICollectionViewLayout, heightForHeaderInSection section: Int) -> Float

func collectionView(_ collectionView: UICollectionView, layout: UICollectionViewLayout, heightForFooterInSection section: Int) -> Float

func collectionView(_ collectionView: UICollectionView, layout: UICollectionViewLayout, insetForSection section: Int) -> UIEdgeInsets

func collectionView(_ collectionView: UICollectionView, layout: UICollectionViewLayout, insetForHeaderInSection section: Int) -> UIEdgeInsets

func collectionView(_ collectionView: UICollectionView, layout: UICollectionViewLayout, insetForFooterInSection section: Int) -> UIEdgeInsets

func collectionView(_ collectionView: UICollectionView, layout: UICollectionViewLayout, minimumInteritemSpacingForSection section: Int) -> Float

限制

  • 仅支持垂直滚动。
  • 无装饰视图。

许可证

CollectionViewWaterfallLayout 在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。