You only need drag directory LxGridView to your project.
pod 'LxGridView', '~> 1.0.0'
Minimum support iOS version: iOS 6.0
You can use LxGridView as convenient as UICollectionView.
_gridViewFlowLayout = [[LxGridViewFlowLayout alloc]init];
// ... config _gridViewFlowLayout
_gridView = [[LxGridView alloc]initWithFrame:GRIDVIEW_FRAME collectionViewLayout:_gridViewFlowLayout];
// ... config _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];
}
}
LxGridView is available under the Apache License 2.0. See the LICENSE file for more info.