在func collectionView(_:dropSessionDidUpdate:withDestinationIndexPath :)中,destinationIndexPath始终为nil。

时间:2018-10-17 23:26:11

标签: ios swift

我正在尝试将图像从其他应用程序(例如Safari)拖放到我的应用程序中的collectionView中。我从UICollectionViewDropDelegate实现了collectionView(_:dropSessionDidUpdate:withDestinationIndexPath:),但destinationIndexPath始终为nil。

有人知道为什么吗?

func collectionView(_ collectionView: UICollectionView,
                    dropSessionDidUpdate session: UIDropSession,
                    withDestinationIndexPath destinationIndexPath: IndexPath?) -> UICollectionViewDropProposal {
    if let indexPath = destinationIndexPath, indexPath.section == 1 {
        return UICollectionViewDropProposal(operation: .copy, intent: .insertAtDestinationIndexPath)
    } else {
        return UICollectionViewDropProposal(operation: .cancel)
    }
}

1 个答案:

答案 0 :(得分:1)

我猜对indexPath = destinationIndexPath, indexPath.section == 1的检查是完全错误的。

在删除if let并仅使用return UICollectionViewDropProposal(operation: .copy, intent: .insertAtDestinationIndexPath)之后,一切正常。