我正在用Xcode开发Mojave OSX应用程序。
我想调整collectionview
的大小以及该项目的位置。
目前,我调用了invalidateLayout()
方法,但是该方法无需动画即可重新计算并设置大小和位置。
在GIF中,您可以看到当前行为是什么,我需要以动画方式将最后一项移至第二个row
。
为此,我尝试覆盖NSCollectionViewFlowLayout
的此方法
open override func prepare(forAnimatedBoundsChange oldBounds: NSRect){
}
open override func finalizeAnimatedBoundsChange() {
}
但是这些永远都不会被调用,而且我不知道我需要什么样的代码来实现这种过渡。
答案 0 :(得分:0)
(从问题移到答案。)
您可以覆盖viewController的viewDidLayout(或将观察者分配给框架视图)并执行以下操作:
collectionView.animator().performBatchUpdates(nil)
这会用动画重新加载您的collectionviewLayout。