我有一个水平滚动UICollectionView
,我想向其中添加多个单元格,这些单元格将导致发生两阶段动画:
UICollectionView
将现有单元格向左滚动,显示
新单元格将出现的空白处,然后... 将单元想象为当用户触发操作时从屏幕底部出现的卡片。
当前,我有一个自定义UICollectionViewFlowLayout
和一个覆盖的initialLayoutAttributesForAppearingItem
,该动画将为过渡的上滚动元素设置动画,但是在第一个项目之后,此动画将在屏幕外显示。我无法弄清楚如何向左滚动UICollectionView
以显示在上滑动动画发生之前将来单元格将出现的空间。
我已经涉足contentOffset
的更改,但这会导致一些非常生硬和小故障的行为。
解决此问题的最佳方法是什么?
当前的“ initialLayoutAttributesForAppearingItem”实现:
override func initialLayoutAttributesForAppearingItem(at itemIndexPath: IndexPath) -> UICollectionViewLayoutAttributes? {
let attr = super.initialLayoutAttributesForAppearingItem(at: itemIndexPath)
attr?.alpha = 0.0
attr?.transform = CGAffineTransform(
translationX: 0,
y: self.collectionView!.bounds.height
)
return attr
}