StickySplitCollectionViewFlowLayout 1.0.1

StickySplitCollectionViewFlowLayout 1.0.1

Gregory Jeckell 维护。



  • Gregory Jeckell

StickySplitCollectionViewFlowLayout

这是什么?

StickySplitCollectionViewFlowLayout 是从 UICollectionViewFlowLayout 衍生出来的布局。它针对紧凑尺寸提供了分割布局以及粘性头部单元格。它支持与 UICollectionViewFlowLayout 相同的所有功能,包括 UICollectionElementKindSectionHeaderUICollectionElementKindSectionFooter。初始实现受到了 CSStickyHeaderFlowLayout 的启发。

media_portrait media_portrait media_portrait

media_landscape media_landscape

安装

通过 CocoaPods 安装,请将以下内容添加到您的 Podfile

pod 'StickySplitCollectionViewFlowLayout'

通过 Carthage 安装,请将以下内容添加到您的 Cartfile

git "https://github.com/gjeck/StickySplitCollectionViewFlowLayout.swift.git"

使用方法

StickySplitCollectionViewFlowLayoutUICollectionViewFlowLayout 工作非常相似。首先,将一个 StickySplitCollectionViewFlowLayout 分配给一个 collection view layout

let stickySplitLayout = StickySplitCollectionViewFlowLayout()
collectionView.collectionViewLayout = stickySplitLayout

然后注册一个类型为 StickySplitCollectionViewFlowLayout.mainElementKind 的补充视图作为主头部

let nib = UINib(nibName: "SomeCollectionReusableView", bundle: nil)
collectionView.register(nib, forSupplementaryViewOfKind: StickySplitCollectionViewFlowLayout.mainElementKind, withReuseIdentifier: "someIdentifier")

最后,为这个补充视图提供一个参考大小

stickySplitLayout.mainHeaderReferenceSize = CGSize(kSomeWidth, kSomeHeight)

配置布局

属性 enforcedLayoutMode 控制主头部的主布局行为。它默认为 .implicit(.left),这意味着当collectionView边界宽度大于高度时,主头部将居左对齐。可以将此属性设置为 vertical 以使其像常规的布局方式。

属性 mainHeaderPinsToVisibleBoundssectionHeadersPinToVisibleBounds 类似,但指定应用主头部。

熟悉API以查看更多功能!

贡献

工作空间文件 StickySplitCollectionViewFlowLayout.xcworkspace 通常在这里进行开发。此工作空间包含两个项目 StickySplitCollectionViewFlowLayoutStickySplitCollectionViewFlowLayoutIntegration。项目 StickySplitCollectionViewFlowLayout 是实际导出的包。项目 StickySplitCollectionViewFlowLayoutIntegration 是集成测试套件,同时也是实现示例的展示。

单元测试和集成测试

单元测试位于 StickySplitCollectionViewFlowLayout 项目中。它们是建立在 XCTest 基础上的。

集成测试位于 StickySplitCollectionViewFlowLayoutIntegration,通常基于 FBSnapshotTestCase

版本控制系统

项目遵循 语义版本控制 的约定。要更新版本

git tag -a MAJOR.MINOR.PATCH -m "version MAJOR.MINOR.PATCH"
git push origin --tags

同时,请确保更新 StickySplitCollectionViewFlowLayout.podspec 中指定的版本。

CocoaPods

要验证 podspec 是否工作正常,请运行以下命令

pod spec lint