Несколько UICollectionViews в ViewController |Не будет вызывать один из методов CollectionViews Delegate - PullRequest
0 голосов
/ 23 ноября 2018

ТАК У меня есть два UICollectionViews в моем UIViewController в раскадровке, и оба связаны с делегатом и источником данных в моем ViewController.Все связанные методы делегата UICollectionView реализованы, и проверки для UICollectionViews реализованы.Но это так расстраивает, что один UICollectionView получает питание, а другой полностью игнорируется.Я почесал голову во всех доступных аспектах, но это как бы подводит меня к краю, пожалуйста, помогите.

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        if collectionView == self.variantsCollectionView {
//            let count = (item?.variant_groups?.count)!
            return 1
        } else {
            return 2//(item?.extra_groups?.count)!
        }
    } 

и

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

        if collectionView == self.variantsCollectionView {
            //IT DOESNT EVEN COME HERE AT ALL
            let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell_variant", for: indexPath)
            return cell

        } else {
            let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath)
            //HERE IT COMES ALWAYS FOR THE NUMBER OF CELLS

            return cell
        }

    }

В то время как UICollectionViews связаны следующим образом: enter image description here

и: enter image description here

Пожалуйста, помогите.Большое вам спасибо

1 Ответ

0 голосов
/ 23 ноября 2018

Посредством комментариев TS нашел решение, выполнив следующие действия:

  1. Убедитесь, что оба представления сбора имеют ненулевые источники данных (и делегаты).
  2. Проверьте, что методы источника данных являютсявыполняется для обоих представлений коллекции.
  3. Убедитесь, что ячейки обоих представлений коллекции имеют действительный размер.

Наконец, проблема была обнаружена после проверки высоты каждого представления коллекции в представлении стека.

в основном CollectionView имеет определенную высоту, тогда как VariantCollectionView нет, и оба были в stackView.Когда сначала создавался вид, он занимал весь размер, тогда как другой вид фактически исчезал.Отсюда и проблема.

...