нет экземпляра 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:
но удаление работало нормально до добавления дополнительных просмотров. Я могу предоставить больше кода / объяснения по мере необходимости.