Um jeito simples de criar e manipular uma UICollectionView.
- Carregue uma coleção de UICollectionViewCell passando apenas um array
- Carregue uma coleção de UICollectionViewCell com UIEdgeInsets diferentes para cada sessão
- Carregue UICollectionViewCell com xib, sem necessidade de implementar Register(nib)
- Remova UICollectionViewCell com apenas uma linha
- Personalize o tamanho da sua UICollectionViewCell
- iOS 11.0+
- Xcode 10.1+
- Swift 4.2+
- Se você encontrou um bug, abra uma issue.
- Se você tem uma nova feature, abra uma issue.
- Se você quer contribuir, envie uma pull request.
Para rodar o projeto de exemplo, clone o repositório, e rode o comando pod install
no diretório Example primeiro.
CollectionManager esta disponível através CocoaPods. Para instalar, basta adicionar a linha abaixo no seu Podfile:
pod 'CollectionManager'
Criando uma CellController e CellView. Veja que é necessário você adicionar @objc para sua classe que extende CellController, precisamos disso porque nossa CollectionManager usa o nome da classe como cellIdentifier (você deve configurar sua UICollectionViewCell com o mesmo nome da sua CellController no seu Xib ou Storyboard)
import CollectionManager
@objc(CustomCell)
class CustomCell: CellController {
...
}
class CustomCellView: CellView {
...
}
Depois de criada sua classe CellController está na hora de implementar os métodos necessários para seu funcionamento.
import CollectionManager
@objc(CustomCell)
class CustomCell: CellController {
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
...
}
override func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
...
}
}
Na sua classe CellView vamos expor nossos IBOutlets.
class CustomCellView: CellView {
@IBOutlet weak var ...
}
Agora falta pouco! Precisamos popular nossa Interface com as cell's que acabamos de construir.
import CollectionManager
class ViewController: UIViewController {
@IBOutlet weak var collectionView: CollectionViewManager!
override func viewDidLoad() {
super.viewDidLoad()
collectionView.items = [CustomCell(),CustomCell(),CustomCell(),CustomCell(),CustomCell(),CustomCell()]
//or
collectionView.setSectionsAndItems = /* caso você tenha SectionController */
}
}
Pronto!
jjfernandes87, julio.fernandes87@gmail.com
CollectionManager is available under the MIT license. See the LICENSE file for more info.