Nessuna descrizione

GroupViewController.swift 2.1KB

    // // GroupViewController.swift // PaiAi // // Created by zhengjianfei on 16/4/4. // Copyright © 2016年 FFIB. All rights reserved. // import UIKit import RxSwift import RxCocoa import RxDataSources import PaiaiDataKit import PaiaiUIKit final class GroupViewController: UIViewController { // MARK: Storyboard property @IBOutlet var tableView: UITableView! // MARK: data property fileprivate let disposeBag = DisposeBag() var viewModel: GroupViewModel<GroupRepository>! // MARK: view function override func viewDidLoad() { super.viewDidLoad() configurationRx() groupViewModel.reload() } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(true) titleWithbackBar = "我的照片群" } var dataSource: RxTableViewSectionedAnimatedDataSource<AnimatableSectionModel<Int, GroupItem>> { return RxTableViewSectionedAnimatedDataSource<AnimatableSectionModel<Int, GroupItem>>(configureCell: { (dataSource, tableView, indexPath, item) in let cell = tableView.dequeueReusableCell(withIdentifier: "groupCell", for: indexPath) as! GroupCell cell.setInfo(item) return cell }, canEditRowAtIndexPath: { _, _ in true }) } func configurationRx() { viewModel.groupContents .bind(to: tableView.rx.items(dataSource: dataSource)) .disposed(by: disposeBag) tableView.rx.itemDeleted .subscribe(onNext: { [unowned self] in self.viewModel.remove(of: $0)}) .disposed(by: disposeBag) tableView.rx.modelSelected(GroupItem.self) .subscribe(onNext: { [unowned self] in self.viewModel.didSelect($0) }) .disposed(by: disposeBag) tableView.rx.willDisplayCell .subscribe(onNext: { [unowned self] in self.preload(indexPath: $0.at)}) .disposed(by: disposeBag) } func preload(indexPath: IndexPath) { guard indexPath.row = collectionView.numberOfItems(inSection: 0) else { return } viewModel.preload() } }