集合视图重新加载后单元格的 UIMenu 错误

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

我在将

UIMenu
附加到单元格的 UIButton 时遇到问题。因此,集合视图中按钮上的
UIMenu
(按钮是单元格的一部分),如果在显示
UIMenu
时存在
collectionView.reloadData()
,则
UIMenu
会更改位置并使用新单元格转移到另一个单元格行动的数据。 因此,在
reloadData()
之后,
UIMenu
似乎正在使用不是主要选择的单元格的单元格/数据。

这是我正在使用的代码:https://pastebin.com/wuNsPki5

如何测试我遇到的问题:

  1. 运行应用程序
  2. 点击任意单元格
  3. 等10秒
  4. 点击分享操作
  5. 输出显示它共享的值与预期不同
UIAction(title: "Share") { [weak self] _ in
    guard let self else { return }
    print("Share \(self.value)")
}

因此,如果我点击第二个单元格(值 == 1),等待 10 秒(触发

collectionView.reloadData
),然后点击“共享操作”,我希望它会打印“共享 1”,但实际上打印“共享 3” “例如。

ios swift cell collectionview uimenucontroller
1个回答
0
投票

两个不同的想法:

  1. 菜单打开时不要重新加载数据()。我的意思是,可以这么说,这就是从菜单及其所附按钮下方拉出地毯。

  2. 当用户点击 UICollectionView 单元格中的按钮时,让它触发一个不可见按钮的 UIMenu,该按钮位于集合视图之外的顶部。然后,当菜单打开时,集合视图可以根据需要重新加载其数据。现在,如果添加或删除单元格,UIMenu 的尾部可能不再位于正确的位置,但您不希望在显示 UIMenu 时移动 UIMenu,因为这会给用户带来麻烦。

我从未尝试过这两种方法,但在这种情况下我会探索这种方法。

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