集合视图动画:展开集合视图和单元格
Collection View animation :Expand Colllection View and Cells
在呈现 Collection View 时,Collection View 的框架应该从零扩展到全屏尺寸。除此之外,集合视图中的单元格还应该从零大小到某个特定大小进行动画处理。有人可以建议我该怎么做吗?
您可以使用集合视图的委托 UICollectionViewFlowLayout
并实现
collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
sizeForItemAtIndexPath indexPath: NSIndexPath)
到 return 与整个集合视图的大小成比例的大小,但不会调整单元格的 contents 大小。您最好执行以下操作:
- Take a snapshot of the full-size collection view.
- 将快照添加到包含集合视图的视图。
- 删除集合视图,必要时在某处保留其对其父项的约束。
- 将快照的大小设置为
(0,0)
。
- 将其设置为完整大小。
- 在动画的
completionHandler
中,删除
快照视图并重新添加集合视图,重新添加集合视图的约束。
在呈现 Collection View 时,Collection View 的框架应该从零扩展到全屏尺寸。除此之外,集合视图中的单元格还应该从零大小到某个特定大小进行动画处理。有人可以建议我该怎么做吗?
您可以使用集合视图的委托 UICollectionViewFlowLayout
并实现
collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
sizeForItemAtIndexPath indexPath: NSIndexPath)
到 return 与整个集合视图的大小成比例的大小,但不会调整单元格的 contents 大小。您最好执行以下操作:
- Take a snapshot of the full-size collection view.
- 将快照添加到包含集合视图的视图。
- 删除集合视图,必要时在某处保留其对其父项的约束。
- 将快照的大小设置为
(0,0)
。 - 将其设置为完整大小。
- 在动画的
completionHandler
中,删除 快照视图并重新添加集合视图,重新添加集合视图的约束。