PSTCollectionView 1.2.3

PSTCollectionView 1.2.3

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最新发布2014年12月

Peter Steinberger维护。



更新:我不再在任何项目中使用 PSTCollectionView,但我仍会接受改进的 pull request。

开源,100% API 兼容的 UICollectionView 替代品,适用于 iOS4.3+

你想要使用 UICollectionView,但仍需要支持较旧的 iOS 版本?那么你将喜欢这个项目。 我最初为了 PSPDFKit 写了这个项目,我的支持文本选择和批注的 iOS PDF 框架,但这个项目看起来对其他人来说非常有用,所以我决定将它公开:)

如果你想在 iOS4.3/5.x 上使用 PSTCollectionView,在 iOS6 上使用 UICollectionView,使用 PSUICollectionView(基本上在任意 UICollectionView* 类中添加 PS 即可自动支持较旧的 iOS 版本) 如果你始终想要使用 PSTCollectionView,用 PSTCollectionView 作为类名。(将 UI 替换为 PST)

当前状态

大多数功能都可以正常工作,包括固定或动态大小的流布局和辅助视图。如果你不进行特殊操作,它应该可以正常工作。PSTCollectionView 也与 UICollectionView 有非常紧密的内部设计,因此如果你想知道 UICollectionView 如何工作,它是一个很好的学习对象。有关有用细节,请参阅 如何使用

如何帮助

最好的方法是如果你已经在一些地方使用了 UICollectionView。添加 PSTCollectionView 并在 iOS4/5 上尝试它。检查是否一切正常,修复错误直到结果与 iOS6 1:1 对齐。你也可以从问题跟踪器中选择一个问题并开始在那里工作。

或者从 WWDC 的一些示例开始尝试,并尝试让它们与 PSTCollectionView 一起工作。其中大多数已经可以工作,但还没有完美。

你还可以编写一个 Pinterest 风格的布局管理器。这不应该太难。

动画

感谢 Sergey Gavrilyuk (@octogavrix),实现了动画支持。它还没有十全十美(见 LineExample),但它是一个很好的开始。

ARC

PSTCollectionView 与 Xcode 4.5.2+ 和 ARC 兼容。

依赖项

PSTCollectionView 需要 QuartzCore.framework。

互操作性

另一个目标(至少对于调试非常有用)是 UI/PST 类之间的互操作性

UICollectionViewFlowLayout *flowLayout = [UICollectionViewFlowLayout new];
PSTCollectionView *collectionView = [[PSTCollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:(PSTCollectionViewFlowLayout *)flowLayout];

(*) 注意:对于某些方法,我们不能使用下划线变体,否则我们可能会在私有API使用方面得到错误结果。我为这些情况添加了一些运行时黑客技术,以动态地添加块转发器(主要用于UI/PST互操作性)。

作者

Peter Steinberger (@steipete) 以及许多其他人!请参阅 贡献者 图表。感谢大家!

许可

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