нет экземпляра UICollectionViewLayoutAttributes для -layoutAttributesForSupplementaryElementOfKind:

Название - ошибка, которую я получаю, и я понятия не имею, почему, но вот некоторая информация, так что, надеюсь, кто-то здесь сможет объяснить меня.

Я подклассUICollectionViewFlowLayout поскольку это спасает меня от подсчета кадров для ячейки (возможно, это проблема?) вprepareLayout, Затем я используюUICollectionViewLayoutAttributes Информация для расчета дополнительного представления, что поверх его, я получаю макет, который я желаю.

я используюperformBatchUpdates:completion: добавить, удалить и обновить вид. Вставка работает нормально, однако удаление элементов происходит, когда появляется ошибка, показанная в заголовке.

Итак, я знаю, почему происходит ошибка, но я не знаю,почему это должно происходить, Чтобы уточнить на примере прохождения сценария, который вызывает проблему

Начните с 1 элемента с 1 дополнительным видом 1 разделДобавьте еще два предмета (prepareLayout видит 3 элемента с 3 дополнительными видами)Удалить пункт (prepareLayout видит 2 просмотра с 2 дополнительными взглядами)layoutAttributesForSupplementaryViewOfKind:atIndexPath: называется запросить атрибуты для индекса пути сраздел: 0 и пункт: 2Сбой из-за того, что он запросил атрибуты для третьего дополнительного представления, хотя ранее он вызывал подготовку макета с настройкой 2 элементов и 2 дополнительных представленийПоднимите руки в отставке и отчаянии

Насколько я могу судить, нарушающая функция:

- (UICollectionViewLayoutAttributes *)layoutAttributesForSupplementaryViewOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)indexPath
{
    return self.layoutInfo[elementKind][indexPath];
}

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

У кого-нибудь есть идеи? Возможно, это то, как я используюperformBatchUpdates:completion: но удаление работало нормально до добавления дополнительных просмотров. Я могу предоставить больше кода / объяснения по мере необходимости.

Ответы на вопрос(2)

Ваш ответ на вопрос