UICollectionView для самостоятельной калибровки на iOS 8 будет сбой с UIDynamic flowLayout и повторением вызова _updateVisibleCellsNow
Я пытаюсь использовать так называемую "ячейку измерения размера", которая означает:
- set
estimatedItemSize
on flowLayout
- overide
preferredLayoutAttributesFittingAttributes
в классе ячеек
Например: Ячейки для самостоятельной калибровки UICollectionView с автоматической компоновкой
И мне нужен динамический эффект: http://www.teehanlax.com/blog/implementing-a-bouncy-uicollectionviewlayout-with-uikit-dynamics/
Он отлично работает без UIDynamic, но мне нужен UIDynamic. Как я вижу, он будет называть prepareLayout
и layoutAttributesForElementsInRect
до смерти, в очереди будет слишком много _updateVisibleCellsNow
ожидания.
Я понятия не имею, как это решить, пожалуйста, помогите мне в случае, если увидите. Или, если я использую эти технологии неправильно, сообщите мне.
Ответы
Ответ 1
Две вещи работали для меня:
- Убедитесь, что в вашем представлении коллекции есть ограничения макета, определенные для размещения в пределах своего супервизора.
- Я получил этот сбой, когда предполагаемый размер был больше конечного размера. Если я установил предполагаемый размер меньшего значения, аварийный останов остановился.
Ответ 2
Если какой-либо размер или позиция кадра изменились, он будет вызывать все предпочтительные атрибутыLayoutAttributesFittingAttributes для всех ячеек, пока кадры всех ячеек не изменятся.
Поток поведения выглядит следующим образом:
1. Before self-sizing cell
2. Validated self-sizing cell again after other cells recalculated.
3. Did changed self-sizing cell
Если второй шаг не может стать стабильным положением и размером всех ячеек, он станет бесконечным циклом.
Пожалуйста, напишите мой пост здесь: Ячейки для определения размера UICollectionView с автоматической компоновкой