我正在尝试使用实例方法 moveItemAt
和
contextMenuConfigurationForItemAt
在 UICollectionView 中实现重新排序 AND上下文菜单。这两种解决方案本身都可以正常工作,但是当我尝试在 UICollectionView 中实现这两种解决方案时,上下文菜单优先,并且我无法使用拖放重新排序。
有没有办法在同一个集合视图中使用这两种方法? 或者,是否有人熟悉使用其他解决方案支持这些功能的方法?我目前正在考虑实施拖/放委托作为解决方法。
下面是我正在使用的代码的示例。该项目针对的是iOS14。
extension myViewController {
override func collectionView(_ collectionView: UICollectionView, moveItemAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {
let temp = items.remove(at: sourceIndexPath.item)
items.insert(temp, at: destinationIndexPath.item)
}
override func collectionView(_ collectionView: UICollectionView, contextMenuConfigurationForItemAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? {
let index = indexPath.row
let config = UIContextMenuConfiguration(
identifier: nil,
previewProvider: nil){ [self] _ in
return UIMenu(
title: "",
image: nil,
identifier: nil,
children: [deleteAction(index: index),editAction(index: index)])
}
return config
}
}