CollectionView Header, section Header

swift

#21

Я так делал ток ничего не получается. Либо не так

 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    let p = Array(sessionFilm)
    if section > 0 {
    return  p[section].value.count - 1
    }
    return 0
}


func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: detailСell, for: indexPath) as! SessionFilmCell

   let item = Array(sessionFilm)[indexPath.section - 1].value[indexPath.item]
    if indexPath.section > 0 {
        cell.timeFormatsLabel.text = "\(item.time ?? "")\n"
        cell.soundFormatsLabel.text = "\(item.formats!.joined()) \(item.upgrades!.joined())"
    }
    return cell
}

#22

я же написал как надо было
p[section - 1].value.count
во 2м методе правильно


#23

В обоих случаях результат одинаковый


#24

Может дело в этом методе

       func numberOfSections(in collectionView: UICollectionView) -> Int {
           return countSection(sessionFilm).count
       }

создается n- количество секций в результате чего не может записаться информация больше чем секций в массиве. Получается если из 6 секций, 0 нужно оставить пустой, а записать 7


#25

исходя из вашего массива у вас тут должно быть +1. это простые вещи, о которых я думал вы знали.


#26

Да я знаю. Просто получается что все просто, а нужного результата нет
где-то я накосячил


#28

исходя из всего что было ранее описано

  1. у вас в массиве нету записи для общего хедера
  2. вам нужно делать +1 для кол-ва секций
  3. возвращать 0 для 0-й секции
  4. делать проверку section > 0
  5. получать данные для секций как p[section - 1]

#29

Понятно что нужно сделать, Вопрос по 1 пункту как сделать эту запись понимаю, что это базовый уровень.


#30

запись в массиве делать не нужно для базового уровня (секции), это просто условие, для которого сделан 5 пункт, который как раз исправляет эту неточность.


#31

Когда я делая так

 func numberOfSections(in collectionView: UICollectionView) -> Int {
              return countSection(sessionFilm).count + 1
         } 

Падает приложение


#32

вы учтите, что все методы должны быть написаны правильно под ваш массив. отдельно проверять каждую логику не имеет смысла.


#33

Тут не поспоришь
вы учтите, что все методы должны быть написаны правильно
Осталось только овладеть правильным написанием)))


#34

я имел в виду что бы все условия для вашего случая соблюдались.
в частности то что я описал по пунктам.


#35

Нашел, проблема у меня была в методе. Растяпа я)))

func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView