我正在用Xcode为Mojave OSX做一个应用程序。
我想调整一个collectionview的大小和项目的位置。目前我调用了invalidateLayout()方法,但它重新计算并设置了没有动画的大小和位置。

在GIF你可以看到什么是当前的行为,我需要的最后一个项目去第二个row,在动画的方式。
为此,我尝试覆盖NSCollectionViewFlowLayout的此方法
open override func prepare(forAnimatedBoundsChange oldBounds: NSRect){
}
open override func finalizeAnimatedBoundsChange() {
}但是这些函数从来不会被调用,我也不知道我需要什么代码来激活这个转换。
发布于 2019-05-31 20:18:01
(从问题移动到答案。)
您可以覆盖viewController的viewDidLayout (或将观察者指定给框架视图)并执行以下操作:
collectionView.animator().performBatchUpdates(nil)这将使用动画重新加载collectionviewLayout。
https://stackoverflow.com/questions/56361909
复制相似问题