6

ho un personalizzato UICollectionViewLayout che fa uso del meccanismo di auto-sizing in iOS 8. Il mio UICollectionViewCell 's attuare preferredLayoutAttributesFittingAttributes per tornare la loro dimensione preferita, calcolato utilizzando la configurazione automatica. Funziona benepreferredLayoutAttributesFittingAttributes non chiamati per le viste supplementari

Tuttavia, mi aspettavo che preferredLayoutAttributesFittingAttributes funzionasse anche per visualizzazioni supplementari, ma non viene mai chiamato. È definito su UICollectionReusableView dopotutto.

Se questo meccanismo è solo per le cellule, qual è il modo corretto di utilizzare la configurazione automatica per dimensioni viste supplementari in un costume UICollectionViewLayout?

risposta

1

preferredLayoutAttributesFittingAttributes saranno chiamati viste supplementari purché conformi ai seguenti requisiti nella sottoclasse UICollectionViewLayout (per quanto posso dire!):

  1. La vista supplementare è disposto con un non- Frame zero in prepareLayout
  2. attributi layout sono previsti per la vista supplementare layoutAttributesForSupplementaryViewOfKind:atIndexPath:
  3. la vista complementare è visibile secondo layoutAttributesForElementsInRect:
  4. Infine, en che il elementKind partite nel vostro CollectionView di collectionView:viewForSupplementaryElementOfKind:atIndexPath: quando la vista supplementare è eliminato dalla coda tramite dequeueReusableSupplementaryViewOfKind:forIndexPath:

In sintesi: UICollectionViewLayout è una bestia malvagia ma se domato dovrebbe essere chiamata la visualizzazione supplementare di preferredLayoutAttributesFittingAttributes.

+0

Ma la verità, sicuramente, è che le celle di auto-dimensionamento non funzionano molto bene, quindi non ci si può meravigliare se anche le viste integrative di auto-dimensionamento non funzionano. – matt

+0

Non funzionano molto bene, ma ciò non significa che il metodo non debba essere chiamato;) – Warpling