Хобрук: Ваш путь к мастерству в программировании

Два collectionViews в одной ячейке tableView. collectionViews не отображаются

У меня есть два разных collectionViews внутри одной ячейки табличного представления. Причина в том, что я пытаюсь найти лучший способ реализовать один горизонтальный collectionView и вертикальный collectionView, которые отображают разные данные. Я просто хочу, чтобы горизонтальный 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()


    }
    ```

  • Вы связали представления коллекций с их выходами в своей раскадровке? 12.05.2019
  • @BrandonStillitano Да 12.05.2019

Ответы:


1

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

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

12.05.2019
Новые материалы

Получение стоковых обновлений с помощью Python
Для начинающего финансового аналитика Введение Описание: Этот проект Python создает скрипт для получения текущих обновлений акций с финансового веб-сайта Yahoo. Для этого проекта мы..

Это все, что вам нужно знать о Kotlin в 2022 году
Добро пожаловать! Kotlin — это язык программирования, популярность которого, кажется, растет, его действительно можно использовать для создания чего угодно, и если вы хотите узнать о Kotlin,..

Текстовый графический интерфейс с Lanterna на Java
Мой опыт работы с компьютерами (и текстовыми графическими пользовательскими интерфейсами) начался еще в восьмидесятых, когда я был ребенком, на дне рождения друга. Это был «новенький» Amstrad..

Перезарядите свой мозг: умопомрачительный потенциал мозговых компьютерных интерфейсов
Способность читать свои мысли и управлять объектами разумом долгое время были предметом человеческого любопытства, ограниченного областью научной фантастики… то есть до сих пор? С технологией,..

Основы C# — Нулевой оператор объединения (??)
Оператор ?? называется null-coalescing operator . Этот оператор используется для предоставления значения по умолчанию, если значение операнда в левой части оператора равно null ...

Сравнение номеров версий в C++ с использованием синтаксического анализа строк
Номера версий обычно используются для обозначения развития или обновлений программного обеспечения или любого другого продукта. При работе с номерами версий в C++ может быть полезно сравнить две..

В мир искусственного интеллекта…
ИИ — это новое топливо в современном мире. Куда бы вы ни обратились, с кем бы вы ни разговаривали — они, как правило, упоминают об ИИ хотя бы раз в ходе разговора. ИИ гудит повсюду. У каждого..