如何将 UICollectionViewDiffableDataSource reorderHandlers 与自定义组合布局一起使用?

问题描述 投票:0回答:1

从 iOS 14 开始,UICollectionViewDiffableDataSource 有一个

reorderHandlers
属性。它在一些示例代码中进行了演示,并在 WWDC 2020 会议关于可区分数据源的进展中进行了讨论。演示者指出您必须提供
canReorder
didReorder
闭包才能启用该功能。

示例代码在具有列表布局配置的集合视图中使用它,并使用重新排序附件配置列表单元格。

canReorder
didReorder
方法按预期调用。但是,如果我从单元中删除重新排序配件,重新排序将不再起作用 - 它不会调用任何一个关闭。它在我的应用程序中也不起作用,我有一个使用组合布局的网格布局。

如何在

UICollectionViewDiffableDataSource
上启用重新排序而不需要列出单元格和重新排序配件?

ios uicollectionview uicollectionviewdiffabledatasource
1个回答
1
投票

我在 WWDC 2022 的虚拟实验室中与另一位工程师讨论过这一点,看来重新订购配件只是一种方便。该功能也可以更手动地实现。文档位于“此处”“交互式重新排序项目”下。我们可以使用自己的手势识别器来知道何时开始拖动,并在确定要移动哪个项目后调用 beginInteractiveMovement

canReorderItem

必须返回 true 才能起作用。

YMMV。玩得开心!

© www.soinside.com 2019 - 2024. All rights reserved.