Подтвердить что ты не робот

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 ожидания.

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

4b9b3361

Ответ 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 с автоматической компоновкой