Skip to content

Imitation iOS system desktop icon arrangement and interaction by UICollectionView!

License

Notifications You must be signed in to change notification settings

DeveloperLx/LxGridView-swift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LxGridView-swift

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

  • demo

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.

let _gridViewFlowLayout = LxGridViewFlowLayout()
//	... config _gridViewFlowLayout

_gridView = LxGridView(frame: GRIDVIEW_FRAME, collectionViewLayout: _gridViewFlowLayout)
//	...	congif _gridView

_gridView.registerClass(LxGridViewCell.classForCoder(), forCellWithReuseIdentifier: GRIDVIEW_CELL_REUSE_IDENTIFIER)

//	implement delegate method
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

    return dataArray.count
}

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

    let cell = collectionView.dequeueReusableCellWithReuseIdentifier(LxGridViewCellReuseIdentifier, forIndexPath: indexPath) as! LxGridViewCell
    
    cell.delegate = self
    cell.editing = _gridView.editing
    
    //	...	config cell
    
    return cell
}

func collectionView(collectionView: LxGridView, itemAtIndexPath sourceIndexPath: NSIndexPath, willMoveToIndexPath destinationIndexPath: NSIndexPath) {
    
    let dataDict = dataArray[sourceIndexPath.item]
    dataArray.removeAtIndex(sourceIndexPath.item)
    dataArray.insert(dataDict, atIndex: destinationIndexPath.item)
}

func deleteButtonClickedInGridViewCell(gridViewCell: LxGridViewCell) {

    if let gridViewCellIndexPath = _gridView!.indexPathForCell(gridViewCell) {
    
        dataArray.removeAtIndex(gridViewCellIndexPath.item)
        _gridView.performBatchUpdates({ [unowned self] () -> Void in
            self._gridView.deleteItemsAtIndexPaths([gridViewCellIndexPath])
        }, completion: nil)
    }
}

License

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

About

Imitation iOS system desktop icon arrangement and interaction by UICollectionView!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages