Вызовите targetIndexPath при перетаскивании в тот же UICollectionView - PullRequest
0 голосов
/ 18 мая 2019

Есть ли способ вызвать

collectionView(_:targetIndexPathForMoveFromItemAt:toProposedIndexPath:) 

, перетаскивая и перетаскивая элемент в пределах одного UICollectionView - (а не второго рядом с ним или вдругое приложение)?

В этом сценарии перетаскивание включено с помощью подхода iOS11 с UICollectionViewDragDelegate и UICollectionViewDropDelegate:

collectionView.dragInteractionEnabled = true 
collectionView.dragDelegate = self
collectionView.dropDelegate = self

Фактически по умолчанию он вызывается только тогда, когда элементперетаскивается из другого collectionView.

С другой стороны, он вызывается при использовании другого подхода, использующего UILongPressGestureRecognizer, и это сокращается до максимума в целях объяснения:

switch recognizer.state {
case .began:
collectionView.beginInteractiveMovementForItem(at: indexPath)
case .changed:
collectionView.updateInteractiveMovementTargetPosition(point)
case .ended:
collectionView.endInteractiveMovement()
}

Однако в моем случае это неправильный подход, основанный на других требованиях.Я перетаскиваю элементы в структуре папок на основе collectionView, где можно перемещать не только элементы, но и складные поддельные папки, которые тоже являются ячейками.

Я боролся с дьяволомв деталях по дням.Любой вклад был бы великолепен.Спасибо большое.

...