我有一个ViewController,在其中,我有一个UICollectionView。 我已升级我的iOS目标,因为它之前是8.0,但是为了能够在集合视图中重新排序单元格,iOS 9.0是必需的。
所以现在,我首先添加了这段代码:
extension MyViewController: UICollectionViewDelegate, UICollectionViewDataSource {
func collectionView(collectionView: UICollectionView, moveItemAtIndexPath sourceIndexPath: NSIndexPath,toIndexPath destinationIndexPath: NSIndexPath) {
//blablabla
}
}
但是当我长按一个单元格并移动它时,不会调用该函数。 那么,我已经看到,如果collectionview在ViewController中,我们需要添加这段代码。
所以我补充说:
func handleLongPress(gesture: UILongPressGestureRecognizer) {
switch(gesture.state) {
case UIGestureRecognizerState.Began:
guard let selectedIndexPath = self.collView.indexPathForItemAtPoint(gesture.locationInView(self.collView)) else {
break
}
collView.beginInteractiveMovementForItemAtIndexPath(selectedIndexPath)
case UIGestureRecognizerState.Changed:
collView.updateInteractiveMovementTargetPosition(gesture.locationInView(self.collView))
case UIGestureRecognizerState.Ended:
collView.endInteractiveMovement()
default:
collView.cancelInteractiveMovement()
}
}
但是现在我的应用程序崩溃了! 实际上,当我长按一个单元格然后尝试移动它时,调用函数“updateInteractiveMovementTargetPosition”,并且在Xcode中它只是崩溃而没有任何错误消息。
是否有我忘记设置的参数或其他内容?
感谢您的帮助:)。