gpt4 book ai didi

cocoa - 如何在边界更改时对 NSCollectionViewLayout 的重新布局进行动画处理?

转载 作者:行者123 更新时间:2023-12-03 16:45:22 27 4
gpt4 key购买 nike

我有一个与 NSCollectionViewFlowLayout 非常相似的 NSCollectionViewLayout 的基本实现:

它将项目放置在水平行中。如果没有足够的空间,下一个项目将添加到下一行,依此类推。

我的问题:当项目从第一行移动到第二行时,如何为布局更改设置动画?

这是一个例子:

Relayout

请注意第 3 项如何从第一行“跳转”到第二行。我想动画化这一变化。

有很多方法可以动画添加/删除项目,但我无法弄清楚如何在没有项目更改时动 Canvas 局更改。

最佳答案

您希望在布局子类中重写的方法是 prepare(forAnimatedBoundsChange:)finalizeAnimatedBoundsChange() .

来自文档:

open func prepare(forAnimatedBoundsChange oldBounds: NSRect) // NSCollectionView calls this when its bounds have changed inside an animation block before displaying items in its new bounds

Prepares the layout object for animated changes to the collection view’s bounds or for the insertion or deletion of items.

open func finalizeAnimatedBoundsChange() // also called inside the animation block

Cleans up after any animated changes to the collection view’s bounds or after the insertion or deletion of items.

关于cocoa - 如何在边界更改时对 NSCollectionViewLayout 的重新布局进行动画处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52091074/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com