我有一个与NSCollectionViewFlowLayout非常相似的NSCollectionViewLayout的基本实现
它将项目放置在水平行中。如果没有足够的空间,则将下一项添加到下一行,依此类推。
我的问题是:当项目从第一行移动到第二行时,如何为布局更改设置动画?
下面是一个例子:

注意项目#3是如何从第一行跳到第二行的。我想用动画来实现这个变化。
有很多方法可以用动画来添加/删除项目,但我不知道如何在没有项目更改的情况下设置布局变化的动画。
发布于 2018-09-22 23:53:06
您希望在布局子类中覆盖的方法是prepare(forAnimatedBoundsChange:)和finalizeAnimatedBoundsChange()。
从文档中:
open func prepare(forAnimatedBoundsChange oldBounds: NSRect) //在显示新边界中的项之前,当动画块内部的边界发生更改时,NSCollectionView会调用此方法
为集合视图边界的动画更改或插入或删除项准备layout对象。
open func finalizeAnimatedBoundsChange() //也在动画块内部调用
在对集合视图的边界进行任何动画更改后,或者在插入或删除项之后进行清理。
https://stackoverflow.com/questions/52091074
复制相似问题