Effective framework, similar to TableViewTools for making your UICollectionView usage simple and comfortable. It allows you to move UICollectionView configuration and interaction logic to separated objects and simply register, add and remove cells from the collection view.
- Separate layer that synchronizes data with the cell appearance
- Full implementation of UICollectionViewDelegate and UICollectionViewDataSource under the hood
- Support of protocols and subclasses as data models
- No type casts and switches required
- iOS 8.0+
- Xcode 8.0+
Create a Cartfile
that lists the framework and run carthage update
. Follow the instructions to add the framework to your project.
github "rosberry/CollectionViewTools"
You can use CocoaPods to install Product Name
by adding it to your Podfile
:
platform :ios, '8.0'
use_frameworks!
pod 'CollectionViewTools'
Drag Sources
folder from last release into your project.
manager = CollectionViewManager(collectionView: collectionView)
let titles = ["Item 1", "Item 2", "Item 3"]
var cellItems = [ExampleCollectionViewCellItem]()
titles.forEach { title in
let cellItem = ExampleCollectionViewCellItem(title: title)
cellItems.append(cellItem)
}
let sectionItem = CollectionViewSectionItem(cellItems: cellItems)
manager.sectionItems = [sectionItem]
class ExampleCollectionViewCellItem: CollectionViewCellItemProtocol {
private let title: String
var reuseType = ReuseType(cellClass: ExampleCollectionViewCell.self)
init(title: String) {
self.title = title
}
func size(for collectionView: UICollectionView, at indexPath: IndexPath) -> CGSize {
return CGSize(width: 100, height: 40)
}
func cell(for collectionView: UICollectionView, at indexPath: IndexPath) -> UICollectionViewCell {
let cell: ExampleCollectionViewCell = collectionView.dequeueReusableCell(for: indexPath)
cell.titleLabel.text = title
return cell
}
func size(for collectionView: UICollectionView, with layout: UICollectionViewLayout, at indexPath: IndexPath) -> CGSize {
return size(for: collectionView, at: indexPath)
}
}
- Dmitry Frishbuter, dmitry.frishbuter@rosberry.com
- Artem Novichkov, artem.novichkov@rosberry.com
This project is owned and maintained by Rosberry. We build mobile apps for users worldwide 🌏.
Check out our open source projects, read our blog or give us a high-five on 🐦 @rosberryapps.
Product Name is available under the MIT license. See the LICENSE file for more info.