Два collectionViews в одной ячейке tableView. collectionViews не отображаются - PullRequest
0 голосов
/ 12 мая 2019

У меня есть два разных collectionViews внутри одной ячейки табличного представления. Причина в том, что я пытаюсь найти лучший способ реализовать один горизонтальный collectionView и вертикальный collecitonView, который отображает разные данные. Я просто хочу, чтобы горизонтальный collectionView прокручивал страницу вниз, когда пользователи прокручивали вертикальный вид collection.

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

class PeopleToFollowHeader: UITableViewCell, UICollectionViewDataSource, UICollectionViewDelegate {



    @IBOutlet weak var collectionViewA: UICollectionView!
    @IBOutlet weak var collectionViewB: UICollectionView!    



    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        if collectionView == self.collectionViewA {
            return 6
        } else {
            return posts.count
        }
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

        if collectionView == self.collectionViewA {
            let cellA = collectionView.dequeueReusableCell(withReuseIdentifier: "FollowCell", for: indexPath) as! PeopleToFollowCollectionCell
            return cellA
        } else {
            if collectionView == self.collectionViewB {
            let cellB = collectionView.dequeueReusableCell(withReuseIdentifier: "FollowingFeed", for: indexPath) as! FollowingCell
            cellB.posts = posts[indexPath.item]
            return cellB
        }

            return UICollectionViewCell()
    }

    }


    override func awakeFromNib() {
        super.awakeFromNib()
        fetchPosts()
        // Display collectionViews
        collectionViewA.delegate = self
        collectionViewA.dataSource = self
        collectionViewB.delegate = self
        collectionViewB.dataSource = self
        self.addSubview(collectionViewA)
        self.addSubview(collectionViewB)
        collectionViewA.reloadData()
        collectionViewB.reloadData()


    }
    ```

1 Ответ

1 голос
/ 12 мая 2019

После перезагрузки fetchPosts() необходимо перезагрузить представления коллекции (при условии, что это асинхронная функция).

Таким образом, вы должны предварительно выбрать данные перед повторной загрузкой всего tableView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...