13

Sto cercando di utilizzare la cosiddetta "cellula dimensionamento di sé", che significa:UICollectionView auto-dimensionamento-cell su iOS 8 andrà in crash con UIDynamic FlowLayout e call ripetere a _updateVisibleCellsNow

  • impostato estimatedItemSize su flowLayout
  • overide preferredLayoutAttributesFittingAttributes in classe cella

come questo: UICollectionView Self Sizing Cells with Auto Layout

E Ho bisogno di un effetto dinamico come questo: http://www.teehanlax.com/blog/implementing-a-bouncy-uicollectionviewlayout-with-uikit-dynamics/

Funziona bene senza UIDynamic, ma ho bisogno di UIDynamic. Come quello che vedo, chiamerà lo prepareLayout e lo layoutAttributesForElementsInRect fino alla morte, ci saranno troppi _updateVisibleCellsNow in fila.

Non ho idea di come risolverlo, per favore aiutatemi nel caso in cui vedete. Oppure, se sto usando quelle tecnologie in modo sbagliato, per favore fatemelo sapere.

risposta

11

due cose ha funzionato per me:

  • Assicurarsi vista la vostra collezione di sé non ha vincoli di layout definite per il posizionamento all'interno del suo superview.
  • Ho avuto questo incidente quando la dimensione stimata era maggiore della dimensione finale. Se imposto la dimensione stimata su un valore inferiore, l'arresto si interrompe.
+0

Questo è vero ... Risposta corretta, ho impostato estimatedItemSize = (0, 0) – Kampai

+0

Per me, l'impostazione di un '' estimatedItemSize' di disabile ridimensionamento automatico .zero' completamente, ma una dimensione di (1.0, 1.0) ha corretto la ricorsione infinita di '_updateVisibleCellsNow:' su iOS 9 – johnpatrickmorgan

1

Se la dimensione o la posizione del frame sono state modificate, verranno attivate tutte le celle preferite "PreferredAttributesFittingAttributes" finché i fotogrammi di tutte le celle non sono stati modificati.

flusso Il comportamento è come segue:

1. Before self-sizing cell 

2. Validated self-sizing cell again after other cells recalculated. 

3. Did changed self-sizing cell 

Se seconda fase non possono ottenere stabile posizione e le dimensioni tutte le cellule, diventerà ciclo infinito.

Si prega di riferimento il mio post qui: UICollectionView Self Sizing Cells with Auto Layout