利用UICollectionView模仿iOS系统桌面图标的交互:LxGridView
jopen
9年前
利用UICollectionView模仿iOS系统桌面图标的交互,作用如动图。
*
Installation
You only need drag directory LxGridView to your project.
Support
Minimum support iOS version: iOS 6.0
Usage
You can use LxGridView as convenient as UICollectionView. _gridViewFlowLayout = [[LxGridViewFlowLayout alloc]init]; // ... config _gridViewFlowLayout _gridView = [[LxGridView alloc]initWithFrame:GRIDVIEW_FRAME collectionViewLayout:_gridViewFlowLayout]; // ... congif _gridView [_gridView registerClass:[LxGridViewCell class] forCellWithReuseIdentifier:GRIDVIEW_CELL_REUSE_IDENTIFIER]; // implement delegate method - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return self.dataArray.count; } - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { LxGridViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:LxGridViewCellReuseIdentifier forIndexPath:indexPath]; cell.delegate = self; cell.editing = _gridView.editing; // ... config cell return cell; } - (void)collectionView:(UICollectionView *)collectionView itemAtIndexPath:(NSIndexPath *)sourceIndexPath willMoveToIndexPath:(NSIndexPath *)destinationIndexPath { NSDictionary * dataDict = self.dataArray[sourceIndexPath.item]; [self.dataArray removeObjectAtIndex:sourceIndexPath.item]; [self.dataArray insertObject:dataDict atIndex:destinationIndexPath.item]; } - (void)deleteButtonClickedInGridViewCell:(LxGridViewCell *)gridViewCell { NSIndexPath * gridViewCellIndexPath = [_gridView indexPathForCell:gridViewCell]; if (gridViewCellIndexPath) { [self.dataArray removeObjectAtIndex:gridViewCellIndexPath.item]; [_gridView performBatchUpdates:^{ [_gridView deleteItemsAtIndexPaths:@[gridViewCellIndexPath]]; } completion:nil]; } }