问题描述
我设置了函数来移动 collectionView 中的项目并更改 coreData 中的数据。
当我通过 longPress(只有数字 1)进入编辑模式时,即使我尝试移动项目,它也不会打印数字“2”。为什么不调用函数“moveItem”?有什么想法吗?
func collectionView(_ collectionView: UICollectionView,canMoveItemAt indexPath: IndexPath) -> Bool {
print("1")
return true
}
func collectionView(_ collectionView: UICollectionView,moveItemAt sourceIndexPath: IndexPath,to destinationIndexPath: IndexPath) {
print("2")
data.updateBankValue(at: sourceIndexPath.item,keyName: "index",newValue: destinationIndexPath.item,calculate: false)
}
@objc func longTap(_ gesture: UIGestureRecognizer){
changeView.isEnabled = false
let indexPath = sourceCollection.indexPathsForVisibleItems
for indexPath in indexPath {
if let cell = sourceCollection.cellForItem(at: indexPath) as? MainCell {
cell.isEditing = true
self.isEditing = true
cell.startAnimate()
}
}
switch(gesture.state) {
case UIGestureRecognizerState.began:
guard let selectedIndexPath = self.sourceCollection.indexPathForItem(at: gesture.location(in: self.sourceCollection)) else {
break
}
sourceCollection.beginInteractiveMovementForItem(at: selectedIndexPath)
case UIGestureRecognizerState.changed:
sourceCollection.updateInteractiveMovementTargetPosition(gesture.location(in: gesture.view!))
case UIGestureRecognizerState.ended:
sourceCollection.endInteractiveMovement()
default:
sourceCollection.cancelInteractiveMovement()
}
sourceCollection.reloadData()
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)