zoukankan      html  css  js  c++  java
  • 长按移动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);
        }
        
        
    }

  • 相关阅读:
    HDU
    Hdu 5072 Coprime(容斥+同色三角形)
    HDU
    HTML常用基础标签
    简单session实现
    前端中的 IoC 理念
    怎样做页面界限
    Reset 对象属性
    SQL注入
    js:表单校验(获取元素、事件)
  • 原文地址:https://www.cnblogs.com/lidongq/p/5535633.html
Copyright © 2011-2022 走看看