Sto utilizzando uno UICollectionView
con UICollectionViewFlowLayout
.Modifica la dimensione di UICollectionViewCell su diversi orientamenti del dispositivo
io impostare la dimensione di ciascuna cella attraverso il
collectionView:layout:sizeForItemAtIndexPath:
Quando si passa da verticale ad orizzontale, desidero regolare la dimensione di ciascuna cella per rientrare completamente la dimensione della CollectionView, senza lasciare spazio imbottitura tra le cellule.
Domande:
1) Come modificare le dimensioni di una cella dopo un evento di rotazione?
2) E, ancora meglio, come rendere il layout in cui le celle si adattano sempre all'intera dimensione dello schermo?
di followben è attualmente accettato uno, ma ha alcuni problemi: sarà lanciare un errore console e l'animazione per il nuovo formato non accadrà correttamente. Vedi la mia risposta per la corretta implementazione. – memmons
@ MichaelG.Emmons: la risposta funzionerà meglio dove una vista raccolta visualizza solo una singola cella a dimensione intera alla volta. In tal caso, ha senso che UIKit si lamenta di rotazione poiché eseguirà una query su 'sizeForItemAtIndexPath' prima di chiamare' didRotateFromInterfaceOrientation'. Tuttavia, per una vista di insieme con più celle sullo schermo, invalidare il layout prima della rotazione provoca un brutto, visibile salto di dimensioni prima che la vista ruota. In questo caso, credo che la mia risposta sia ancora l'implementazione più corretta. – followben
@followben D'accordo che ognuno ha i suoi problemi in diversi casi d'uso. In questo caso, però, l'OP indica 'Vorrei regolare la dimensione di ogni cella in ** completamente adatta alla dimensione di CollectionView **' che è esattamente la soluzione proposta nella mia risposta. Se potessi includere la mia soluzione nella tua risposta e prendere nota di quale approccio funziona meglio in quali condizioni sarebbe abbastanza buono per me. – memmons