6

Ho sottoclasse UICollectionViewFlowLayout e in tale sottoclasse sto modificando i fotogrammi UICollectionViewLayoutAttributes, in modo che risultino più grandi o più piccoli, a seconda della loro posizione sullo schermo.Animate sottoclasse UICollectionViewFlowLayout UICollectionViewLayoutAttributes modifiche frame

sto eseguendo le modifiche del telaio in layoutAttributesForElementsInRect: E così il ritorno in layoutAttributesForItemAtIndexPath: sto tornando SI in shouldInvalidateLayoutForBoundsChange:

Tutto sta funzionando bene, ma le cellule non animare i cambiamenti di la cornice.

Mi manca qualcosa? Perché le modifiche non vengono animate?

Grazie.

+0

Ciao. Potresti inserire qualche codice? Cosa intendi cambiando i fotogrammi in modo che siano più grandi o più piccoli a seconda della loro posizione? Scorrere la posizione? (Ad esempio, più ampio al centro dello schermo) Ho un esempio in cui funziona meravigliosamente, quindi suppongo che tu intenda qualcos'altro. Grazie! – smallwisdom

+0

@smallwisdom, 'cambiare fotogrammi' significa cambiare gli attributi di ciascun elemento, in modo che gli elementi risultino più grandi in alto e più piccoli nella loro direzione verso l'alto (della scrollView). – Raz

risposta

0

RISOLTO.

Non esiste una "funzione di animazione" o qualcosa di simile, poiché la modifica dei fotogrammi di elementi di una vista di raccolta all'interno del proprio layout personalizzato (flusso) non può essere animata.

La soluzione al problema è la scrittura di un algoritmo che calcola tutti i fotogrammi rilevanti che il metodo layoutAttributesForElementsInRect: fornisce, in modo che l'impostazione del frame di un oggetto rispetti rispettosamente il frame di un altro elemento e compensi la dimensione aggiunta, o ridotta dimensione.