利用UICollectionView模仿iOS系統桌面圖標的交互:LxGridView
利用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];
} }</pre>