collectionView numberOfItemsInSection в UITableviewCell - PullRequest
0 голосов
/ 18 июня 2019

Я сделал один collectionView внутри ячейки tableView

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

проблема в том, что collectionView должен динамическигенерировать ячейки из ответа сервера

Я установил счетчик в верхней части коллекции, который показывает количество ячеек (также динамически обновляемых)

, если коллекция находится в поле обзора, когдаэкран загружен, ячейки загружены

Если необходимо завершить сбор, он пуст, хотя счетчик указывает на наличие элементов.

Я не совсем понимаю, почему.Код ниже

код формы VC:

 let realPfotoCell = tableView.dequeueReusableCell(withIdentifier: 
"RealPhoto", for: indexPath)
            as! RealPhotoCarInfoTableViewCell
        realPfotoCell.delegate = self


        realPfotoCell.model = self.rPhoto
        if(self.rPhoto?.data != nil){
            realPfotoCell.RPhotoCount.text = String(self.rPhoto.data!.count)
        }



        cell = realPfotoCell
        cell.selectionStyle = UITableViewCell.SelectionStyle.none
    }

код от tableViewCell:

    var model: RealPhoto!

    func setCollectionViewDataSourceDelegate(dataSourceDelegate: UICollectionViewDataSource & UICollectionViewDelegate, forRow row: Int) {
        MyCollection.delegate = self
        MyCollection.dataSource = self
        MyCollection.reloadData()

    }

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
MyCollection.reloadData()
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

    }



    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

        if (self.model?.data?.count != nil){
            print("Photos here")
            print(self.model?.data!.count as Any)
        } else {
            print("No photos")
        }

        return self.model?.data?.count ?? 0

    }

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

разрешено

1-е в ячейке табличного представления создайте эту функцию:

func collectionReloadData(){
        DispatchQueue.main.async(execute: {
            self.collectionView.reloadData()
        })
    }

и затем вызовите ее из

func tableView (_ tableView: UITableView, cellForRowAt indexPath: IndexPath)-> UITableViewCell {...

realPfotoCell.collectionReloadData()
0 голосов
/ 18 июня 2019

Пожалуйста, убедитесь, что ReloadData () будет вызываться при получении ответа вашего сервера.

   //Server Response
    MyCollection.delegate = self
    MyCollection.dataSource = self
    MyCollection.reloadData()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...