UICollectionView动态尺寸单元格自定义布局拖拽重排问题求助
UICollectionView Custom Layout with Dynamic Cell Widths Breaks Drag Reorder Animations
大家好!我为UICollectionView实现了支持动态单元格宽度(仅修改单元格宽度,高度保持固定)的自定义布局,同时开启了拖拽重排功能。关闭动态尺寸时,重排操作完全正常,但开启动态宽度后,拖拽动画出现了明显异常。
我已经做了以下尝试和排查:
- 参考过相关技术博客的方案,实现了
invalidationContextForInteractivelyMovingItems(at:targetIndexPath:)方法,但哪怕直接使用博客中的示例代码,拖拽小尺寸单元格到大尺寸单元格位置时,仍会出现单元格替换错误 - 示例代码中因为硬编码调用
moveAt方法,导致单元格会在光标位置直接交换,这个问题的详细情况我整理在了项目的Wiki文档中 - 2020年7月28日更新:即使是简单的横向UICollectionView自定义布局,也存在同样的拖拽重排异常问题
我准备了一个可以复现问题的示例项目,项目的README里列出了所有出现的错误场景。
恳请各位帮忙分析解决这个问题,谢谢!
内容的提问来源于stack exchange,提问作者rgipd




