这个问题通常是由于忘记在 UICollectionViewCell 或 UICollectionView 上设置 dragInteractionEnabled 属性导致的。确保将该属性设置为 true,以启用拖放操作并正确调用委托方法。以下是一个示例代码,展示如何设置 dragInteractionEnabled 属性:
class MyCollectionViewCell: UICollectionViewCell {
override init(frame: CGRect) {
super.init(frame: frame)
self.dragInteractionEnabled = true
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.dragInteractionEnabled = true
}
}
class MyCollectionView: UICollectionView {
override init(frame: CGRect, collectionViewLayout layout: UICollectionViewLayout) {
super.init(frame: frame, collectionViewLayout: layout)
self.dragInteractionEnabled = true
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.dragInteractionEnabled = true
}
}
将 dragInteractionEnabled 属性设置为 true 后,您应该能够正确地调用所有 UICollectionViewDropDelegate 方法。