UICollectionView实现item的重新排布

//实现item的重排

- (void)longPressGestureRecognizerHandle:(UILongPressGestureRecognizer *)longPressGestureRecognizer

{

    CGPoint point = [longPressGestureRecognizer locationInView:self.collectionView];

    

    if (longPressGestureRecognizer.state == UIGestureRecognizerStateBegan)

    {

        NSIndexPath *indexPath = [self.collectionView indexPathForItemAtPoint:point];

        //item开始交互移动(iOS9.0新特新)

        [self.collectionView beginInteractiveMovementForItemAtIndexPath:indexPath];

    }

    else if (longPressGestureRecognizer.state == UIGestureRecognizerStateChanged)

    {

        //更新交互移动坐标

        [self.collectionView updateInteractiveMovementTargetPosition:point];

    }

    else if (longPressGestureRecognizer.state == UIGestureRecognizerStateEnded)

    {

        //结束交互移动

        [self.collectionView endInteractiveMovement];

    }

    else

    {

        //取消交互移动

        [self.collectionView cancelInteractiveMovement];

    }

    

}


#pragma mark - UICollectionViewDataSource

/**

 *  实现item的移动

 *

 *  @param collectionView

 *  @param sourceIndexPath      开始移动的位置

 *  @param destinationIndexPath 移动后的位置

 */

- (void)collectionView:(UICollectionView *)collectionView moveItemAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath

{

    //1.记录要移动的数据

    id o = self.dataArray[sourceIndexPath.item];

    //2.删除要移动的数据

    [self.dataArray removeObject:o];

    //3.添加要移动的数据到指定位置

    [self.dataArray insertObject:o atIndex:destinationIndexPath.item];

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值