- (void)handlelongGesture:(UILongPressGestureRecognizer *)longGesture {
self.myIndexPath = [self.collectionView indexPathForItemAtPoint:[longGesture locationInView:self.collectionView]];
//判断手势状态
switch (longGesture.state) {
case UIGestureRecognizerStateBegan:{
//判断手势落点位置是否在路径上
NSIndexPath *indexPath = [self.collectionView indexPathForItemAtPoint:[longGesture locationInView:self.collectionView]];
if (indexPath == nil) {
break;
}
//在路径上则开始移动该路径上的cell
[self.collectionView beginInteractiveMovementForItemAtIndexPath:indexPath];
self.myCell = (CostumCollectionViewCell *)[self.collectionView cellForItemAtIndexPath:self.myIndexPath];
[self.myCell.layer removeAnimationForKey:@"shake"];
}
break;
case UIGestureRecognizerStateChanged:
//移动过程当中随时更新cell位置
[self.collectionView updateInteractiveMovementTargetPosition:[longGesture locationInView:self.collectionView]];
break;
case UIGestureRecognizerStateEnded:
[JYWAnimation vibrateAnimation:self.myCell];
//移动结束后关闭cell移动
[self.collectionView endInteractiveMovement];
break;
default:
[self.collectionView cancelInteractiveMovement];
break;
}
}
UICollectionView的cell拖动交换位置
最新推荐文章于 2023-03-22 22:52:52 发布