如何平滑地动画UICollectionView单元格扩展?

已经为此工作了一段时间,但似乎无法弄清楚。

我正在尝试成功实现UICollectionView中选定的单元格后,在单元格中动画化截断的UILabel文本的扩展,但是我遇到一个问题,即在单元格扩展时,其正下方的单元格会“捕捉”到它的新位置,而不是随着上方所选单元格的增长而平滑地向下动画。当我再次轻按该单元以使其折叠时,其下方的单元会像预期的那样平滑地动画。

这是单元格选择代码中的动画块:

c.toggleOverviewExpansion() // Alternate between UILabel.numberoflines = 0 and 5 
UIView.animate(withDuration: 2, animations: {     
    self.view.layoutIfNeeded()       
})       
collectionView.scrollToItem(at: indexPath, at: .top, animated: true)

我正在使用UICollectionViewDiffableDataSource和UICollectionViewCompositionalLayout,如果有任何区别。 对于单元的扩展和收缩,我是否缺少一些流畅的动画?

评论
  • tquod
    tquod 回复

    尝试将收集动画放到主线程上,也许可行:

    DispatchQueue.main.async {
               self.collectionView.scrollToItem(at: indexPath, at: .top, animated: true)
        }