Skip to content
Imitation iOS system desktop icon arrangement and interaction by UICollectionView!
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LxGridView
LxGridViewDemo
.gitignore
LICENSE
README.md
demo.gif

README.md

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.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.