GitHub - DeveloperLx/LxGridView-swift: Imitation iOS system desktop icon arrangement and interaction by UICollectionView!
Imitate Apple iOS system Desktop icons arrangement and interaction by inheriting UICollectionView!
You only need drag directory LxGridView to your project.
Minimum support iOS version: iOS 6.0
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)
}
}
LxGridView is available under the Apache License 2.0. See the LICENSE file for more info.