- Requirements
- Documentations
- Installation
- Usage TableViewAdapter with UITableView
- Usage CollectionViewAdapter with UICollectionView
- Cell Templates
- Author
- License
- Info
- iOS 9.0 and above
- Swift 4.1
Full documentation for the latest release is available here
RKTableAdapter is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'RKTableAdapter', '~> 0.1'- Create cell and cellViewModel (Example template)
- Example template for ViewCOntroller with TableViewAdapter
- Create TableViewAdapter
// Create
let tableView: UITableView = UITableView()
lazy var tableAdapter = TableViewAdapter(tableView: self.tableView)- Setup callbacks if needed
private func setupTableAdapter() {
    // tableAdapter.callbacks...
    // tableAdapter.scrollViewCallbacks...
}- Configure content
private func configureTableAdapterContent() {
    let tableList = TableList()
    makeMySection(tableList)
    tableAdapter.reload(with: tableList)
}
private func makeMySection(_ list: TableList) {
    let section = list["mySection"]
    section.headerHeight = 30
    section.footerHeight = 40
    do {
        let viewModel = TableSwitchCellVM(title: "Autosave", isOn: true)
        vmAutosave.changeAction = autosaveStateChanged
        let switchRow = TableRowSwitch(viewModel: vmAutosave)
        section.append(row: switchRow)
    }
    do {
        let vm = MenuItemCellVM(title: "Share", action: share)
        section.append(row: TableRow<MenuItemCell>(id: "uniq id", viewModel: vm))
    }
}- Add actions
private lazy var share: TableCellVM.ActionType = { [weak self] userInfo in
    guard let sself = self else { return }
    // do smth...
}- Update viewDidLoad
override viewDidLoad() {
    super.viewDidLoad()
    setupTableAdapter()
    configureTableAdapterContent()
}- Example template for ViewCOntroller with CollectionViewAdapter
- Create cell and cellViewModel (Example template)
- Create ColelctionViewAdapter
// Create
lazy var collectionViewFlow: UICollectionViewFlowLayout = {
        let flow = UICollectionViewFlowLayout()
        // configure flow layout
        return flow
    }()
    lazy var collectionView: UICollectionView = {
        let cv = UICollectionView(frame: .zero, collectionViewLayout: collectionViewFlow)
        // configure collection view
        return cv
    }()
lazy var collectionAdapter = CollectionViewAdapter(collectionView: collectionView)- Setup callbacks if needed
private func setupCollectionAdapter() {
    // collectionAdapter.callbacks...
    // collectionAdapter.scrollViewCallbacks...
}- Configure content
private func configureCollectionAdapterContent() {
    let collectionList = CollectionList()
    
    makeTestSection(collectionList)
    collectionAdapter.reload(with: collectionList)
}
private func makeTestSection(_ list: CollectionList) {
    let section = list[SectionIds.diary.rawValue]
    
    do {
        // let vm = <#Collection Cell VM#>
        // vm.action = collectionCellAction
        // section.append(row: TableRow<<#Collection Cell Class#>>(id: "uniq id", viewModel: vm))
    }
}- Add actions
private lazy var collectionCellAction: CollectionCellVM.ActionType = { [weak self] _ in
    guard let sself = self else { return }
    
    print("cell taped")
}- Update viewDidLoad
override viewDidLoad() {
    super.viewDidLoad()
    setupCollectionAdapter()
    configureCollectionAdapterContent()
}Generate Cells and ViewControllers from templates with Jessica
Download templates
jessica generator pull github.com/daskioff/jessica_templates rk_table_adapter
Fix output_paths in templates.yml for your project
jessica generator gen cell CELL_NAME
or
jessica generator gen cell_calc CELL_NAME
DaskiOFF, [email protected]
RKTableAdapter is available under the MIT license. See the LICENSE file for more info.
Последний раз проект собирался с версией Xcode указанной в файле .xcode-version (Подробнее)
Последний раз проект собирался с версией Swift указанной в файле .swift-version