已经为此工作了一段时间,但似乎无法弄清楚。
我已经成功实现了在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,如果有什么区别。对于单元格的扩展和收缩,我是否缺少一些流畅的动画?
尝试将集合动画放到主线程上,也许可行:
DispatchQueue.main.async {
self.collectionView.scrollToItem(at: indexPath, at: .top, animated: true)
}