我正在尝试在我的应用程序中启用拖放作为触发功能的机制。我有一个 TableView 显示用户列表,我有一个 collectionView 可以显示 3 种不同类型的数据 - 但一次只能显示一种类型。
我希望 collectionView 在显示 Type1 数据和 Type3 数据时接受来自 tableView 的“drop”,但不接受 Type2 数据。现在,我的拖放工作正常 - 但它适用于所有 3 种数据类型,我不希望它适用于 Type2 数据。
所以目前,如果它正在显示 Type2 数据,我触发的操作只是忽略丢弃的数据 - 但我想阻止 CollectionView 甚至接受它(如果可能的话)。我不希望用户看到可能下降的视觉指示。
我怀疑我应该为此使用 dropProposal - 但是在阅读了 Apple 文档并使用 Google 和 YouTube 搜索了多个小时的示例之后 - 我完全不知所措。
我知道我应该在这里发布我的问题代码,但我什至想尝试控制它的唯一一件事就是根据我显示的数据类型来操作 collectionView.dropDelegate。我相当有信心正确的解决方案会非常不同 - 但这是我尝试过的:
if collectionMode != "Type2" {
collectionView.dropDelegate = self
} else {
collectionView.dropDelegate = nil
}
如果你能帮我指出答案,请做。