OGeek|极客世界-中国程序员成长平台

标题: iOS swift 4.2 如何拒绝或禁止放入 UICollectionView [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 22:15
标题: iOS swift 4.2 如何拒绝或禁止放入 UICollectionView

我正在尝试在我的应用程序中启用拖放作为触发功能的机制。我有一个显示用户列表的 TableView,我有一个可以显示 3 种不同类型数据的 collectionView - 但一次只能显示一种类型。

我希望 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
}

如果你能帮我指出答案,请这样做。



Best Answer-推荐答案


试试这个,

func collectionView(_ collectionView: UICollectionView, 
        dragSessionWillBegin session: UIDragSession){

     guard if collectionMode == "Mode2" else { return }
     :
     :
     // Do stuff

}

关于iOS swift 4.2 如何拒绝或禁止放入 UICollectionView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54799335/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4