通常情况下,UICollectionView
在从一个 item 滚动到另一个 item 时没有过渡动画效果。有很多方法可以为 UICollectionView 编写动画,但使用 UICollectionViewLayout 子类是目前最简单的方法。而且它不会破坏您现有的任何代码。 您仍然可以使用您的 UICollectionView 子类,并且您无需更改您的 UICollectionViewCell。 只需插入即可享受。
视差 | 放大缩小 | 旋转进出 | 卡片 |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
交叉淡化 | 立方体 | 翻页 | |
![]() |
![]() |
![]() |
要运行示例项目,请克隆 repo,并在 Xcode 中启动 iOS Example
。
要使用 CocoaPods 将 AnimatedCollectionViewLayout 集成到您的 Xcode 项目中,请在您的 Podfile
中指定它
对于 Swift 4.2 或更高版本
pod 'AnimatedCollectionViewLayout'
对于 Swift 4.1 或更低版本
pod 'AnimatedCollectionViewLayout', '~> 0.3.0'
也支持 Carthage 和 Swift Package Manager。
在您想要使用它的地方导入库。 创建一个 AnimatedCollectionViewLayout
对象,设置它的 animator
,并将其分配给您的 UICollectionView
。
import AnimatedCollectionViewLayout
// ...
let layout = AnimatedCollectionViewLayout()
layout.animator = ParallaxAttributesAnimator()
collectionView.collectionViewLayout = layout
大多数内置的动画器在分页模式下效果最佳,并且它们具有您可以调整的其他参数,以获得更好的过渡效果。 您还可以通过实现协议 LayoutAttributesAnimator
来编写自己的动画器。
AnimatedCollectionViewLayout 在 MIT 许可证下可用。 有关更多信息,请参阅 LICENSE 文件。