Skip to content
Imitation iOS system desktop icon arrangement and interaction by UICollectionView!
Branch: master
Clone or download
Latest commit c2ec822 May 9, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LxGridView code clean May 9, 2017
LxGridViewDemo code clean May 9, 2017
.gitignore Initial commit Jun 30, 2015
LICENSE
LxGridView.podspec
README.md Update README.md May 9, 2017
demo.gif update gif Jul 19, 2015

README.md

LxGridView

Imitate Apple iOS system Desktop icons arrangement and interaction by inheriting UICollectionView!
  • demo

Installation

You only need drag directory LxGridView to your project.

Podfile

pod 'LxGridView', '~> 1.0.1'

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];
	//	... 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];
	    }
	}

License

LxGridView is available under the Apache License 2.0. See the LICENSE file for more info.

You can’t perform that action at this time.