Итак, базовый обзор. У меня есть UICollectionView
, что мне нужно поддерживать добавление и удаление элемента через метод performBatchUpdates:
. Если я использую стандарт UICollectionViewFlowLayout
, он отлично работает.Использование [UICollectionView performBatchUpdates:] с UICollectionViewFlowLayout с UIDynamics
Однако, когда я пытаюсь использовать UICollectionViewFlowLayout
, который питается от UIDynamicAnimator
, я получаю сбой, как только я звоню performBatchChanges
.
В моем классе UICollectionViewFlowLayout
метод prepareForCollectionViewUpdates:
так и не получил. Пользовательский UICollectionViewFlowLayout
, который я использую, основан на this sample.
Выход консоли после аварии является ...
*** Assertion failure in -[UICollectionViewData layoutAttributesForItemAtIndexPath:], /SourceCache/UIKit/UIKit-2903.23/UICollectionViewData.m:581
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'no UICollectionViewLayoutAttributes instance for -layoutAttributesForItemAtIndexPath: <NSIndexPath: 0xc000000000028096> {length = 2, path = 2 - 5}'
*** First throw call stack:
libc++abi.dylib: terminating with uncaught exception of type NSException
Любые идеи?
Вы нашли исправление для этого? Ниже приведен ответ, когда ячейка не видна, но это происходит со мной, когда ячейка видна, и это случайный сбой, происходящий в prod, который я не могу воспроизвести. Я даже не использую UIDynamicAnimator – aryaxt
Ответ ударил для меня, это было правильное решение для меня. –