• 长按移动cell


    - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
        MineCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:collectionCell forIndexPath:indexPath];
        cell.backgroundColor = [UIColor whiteColor];
        cell.cellImage.image = [UIImage imageNamed:self.imagesArray[indexPath.row]];
        UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPressGesture:)];
        [cell addGestureRecognizer:longPress];
        return cell;
    }

    - (void)longPressGesture:(UILongPressGestureRecognizer *)sender{
        MineCollectionViewCell *cell = (MineCollectionViewCell *)sender.view;
        NSIndexPath *cellIndexPath = [_mineCollection indexPathForCell:cell];
        [_mineCollection bringSubviewToFront:cell];
        BOOL isChanged = NO;
        if (sender.state == UIGestureRecognizerStateBegan) {
            [self.cellAttributesArray removeAllObjects];
            for (int i = 0;i< self.imagesArray.count; i++) {
                [self.cellAttributesArray addObject:[_mineCollection layoutAttributesForItemAtIndexPath:[NSIndexPath indexPathForItem:i inSection:0]]];
            }
            self.lastPressPoint = [sender locationInView:_mineCollection];
        }else if (sender.state == UIGestureRecognizerStateChanged){
            cell.center = [sender locationInView:_mineCollection];
            for (UICollectionViewLayoutAttributes *attributes in self.cellAttributesArray) {
                if (CGRectContainsPoint(attributes.frame, cell.center) && cellIndexPath != attributes.indexPath) {
                    isChanged = YES;
                    //对数组中存放的元素重新排序
                    NSString *imageStr = self.imagesArray[cellIndexPath.row];
                    [self.imagesArray removeObjectAtIndex:cellIndexPath.row];
                    [self.imagesArray insertObject:imageStr atIndex:attributes.indexPath.row];
                    [self.mineCollection moveItemAtIndexPath:cellIndexPath toIndexPath:attributes.indexPath];
                    
                    
                }
            }
            
        }else if (sender.state == UIGestureRecognizerStateEnded) {
            if (!isChanged) {
                cell.center = [_mineCollection layoutAttributesForItemAtIndexPath:cellIndexPath].center;
            }
            NSLog(@"排序后---%@",self.imagesArray);
        }
        
        
    }

  • 相关阅读:
    Oracle 创建表并设置主键自增
    Oracle 基本知识回顾
    关于JAVAweb的一些东西
    JAVA获取运行环境的信息
    关于正则表达式的一些东西
    关于jQuery的一些东西
    关于JS的一些东西
    thymeleaf 的使用
    小程序flex容器
    Vue组件化
  • 原文地址:https://www.cnblogs.com/lidongq/p/5535633.html
Copyright © 2020-2023  润新知