wsu*_*sun 5 ios uicollectionview swift
我有一个UICollectionViewController使用交互式移动 API 来支持单元格重新排序的项目。当单元格被拖动到不同的位置,然后返回到其原始位置时,它会捕捉/跳到位。该问题仅发生在 iOS 13 上,不会发生在 iOS 11 或 iOS 12 上。
https://i.stack.imgur.com/9xRrN.jpg
我使用以下方法来处理集合视图单元格的长按:
@objc private func handleLongPress(_ recognizer: UILongPressGestureRecognizer) {
switch recognizer.state {
case .began:
guard let selectedIndexPath = collectionView.indexPathForItem(at: recognizer.location(in: collectionView)) else {
break
}
collectionView.beginInteractiveMovementForItem(at: selectedIndexPath)
case .changed:
collectionView.updateInteractiveMovementTargetPosition(recognizer.location(in: collectionView))
case .ended:
collectionView.endInteractiveMovement()
default:
collectionView.cancelInteractiveMovement()
}
}
Run Code Online (Sandbox Code Playgroud)
这里提供了一个最小的可重现示例: https: //github.com/wsun/ios13DragDrop
我想坚持使用交互式移动 API,而不是使用较新的 iOS 11 拖/放 API,因为它允许控制用户可以将单元格拖动到的位置。由于我没有做任何特别新颖的事情,我怀疑这可能是 iOS 13 中的 UIKit 回归。有人有任何建议或解决方法来解决这个问题吗?
由于 iOS11 拖放功能内置于 CollectionViews 中,因此您不再需要这样做。
| 归档时间: |
|
| 查看次数: |
925 次 |
| 最近记录: |