rxswift tableview внутри коллекции viewview - PullRequest
0 голосов
/ 13 октября 2019

Я пытаюсь реализовать представление таблицы внутри представления коллекции, но данные просмотра таблицы исчезают после прокрутки горизонтального представления коллекции,

private func rxPopularCollectionView(){
    popularCollectionView.rx.setDelegate(self).disposed(by: disposeBag)
    viewModel.categoryAlliancesData.map{categories -> [CategoriesAlliancesDatum?] in
        self.categoryAlliances = categories
        print("Inside collectionview categories")
        return categories
    }
         .bind(to: popularCollectionView.rx.items(cellIdentifier: "PopularCollectionViewCell", cellType: PopularCollectionViewCell.self)) {  (row, category,cell) in
             print("I am inside Collectionview cell")
            cell.labelTitle.text = /category?.title
            cell.rxTableView(viewModel : self.viewModel, item: row, categoryAlliances: self.categoryAlliances ?? [])
    }.disposed(by: disposeBag)}

CollectionViewCell

var disposeBag = DisposeBag()

override func prepareForReuse() {
   super.prepareForReuse()
    print("Inside reuse")
   disposeBag = DisposeBag()
}

func rxTableView(viewModel : StoreViewModel, item: Int, categoryAlliances : [CategoriesAlliancesDatum?]){
    print("Inside rxtableview")
    disposeBag = DisposeBag()
    DispatchQueue.main.async {
        self.tableView.reloadData()
    }
    tableView.rx.setDelegate(self).disposed(by: disposeBag)
    viewModel.alliances
        .map{alliances -> [AlliancesDatum] in
            let categoryAlliances = categoryAlliances[item]?.allianceID.map{alliances["\($0)"]}
            print("Inside alliances")
            return categoryAlliances as! [AlliancesDatum]
    }
        .bind(to:
            self.tableView.rx.items(cellIdentifier: "PopularTableViewCell", cellType: PopularTableViewCell.self)){ (row, alliance, tableCell) in
                print("I am inside Tableview cell")
            tableCell.imageViewPopular.downloadImage(urlString: /alliance.thumbnail)
                tableCell.labelTitle.text = /alliance.name
                tableCell.labelDescription.text = /alliance.shortDescription
    }.disposed(by: disposeBag)
}

Горизонтальное представление CollectionView заполняется, но представление таблицыне заселяется. Функция rxTableView () вызывается каждый раз, когда я прокручиваю коллекцию. Проблема в методе табличного представления rxswift bind, он не вызывается.

...