Ho notato che quando si chiama in un setLayout:animated
UICollectionView
per passare tra due layout, la cella attualmente visibile non aderisce alla zIndex
è attributi di layout è stato impostato in layoutAttributesForItemAtIndexPath:
.UICollectionView setLayout: animato: non conservare zIndex
Ad esempio, se dovesse avere un UICollectionView
con UICollectionViewFlowLayout
, impostare è minimumLineSpacing
di un numero negativo in modo che le cellule si sovrappongono e quindi impostare un zIndex
su ogni cella superiore a quella della cella precedente, quindi sembra come se la le celle sono impilate dal basso verso l'alto.
Tuttavia, ciò si interrompe se si imposta il layout su un altro layout, quindi si torna al layout originale. È come se la cella attualmente visibile non ascolti lo zIndex e sia posizionata sopra le altre celle. Se faccio scorrere la cella fuori dallo schermo, di nuovo su di esso è nella posizione corretta.
Grazie per la risposta, anche se non ho avuto fortuna con la soluzione. Penso che il problema è che UICollectionView fa qualcosa con lo zIndex della cella selezionata. Potrei sbagliarmi ma cambiare il layout potrebbe non chiamare il '' initialLayoutAttributesForAppearingItemAtIndex'' se la cella è già visibile e rimane visibile durante la modifica del layout. – sampage
Ho appena elaborato un rapido esempio di questo ed è stato in grado di riprodurre i problemi con Z-Index. Ho capito che 'initialLayoutAttributesForAppearingItemAtIndex' è stato chiamato per ogni elemento sullo schermo dopo l'invalidazione (modifica dei limiti animati, blocco di aggiornamento batch), ma dopo aver riletto i documenti, è per gli elementi che necessitano di animazione. Fortunatamente, sono riuscito a ottenere risultati consistenti cambiando layout impostando lo z-index in 'layoutAttributesForElementsInRect:' invece di 'layoutAttributesForItemAtIndexPath:' –
@sampage puoi dirmi di più sullo z-index delle celle selezionate? Non riesco a trovare nessuna prova di ciò che stai dicendo, ma noto alcune incongruenze nelle mie animazioni ... Grazie! –