Quando un utente esegue un'azione, devo estrarre uno UICollectionView
dal basso verso l'alto fino a una certa altezza. Poiché questo nuovo stato è totalmente facoltativo, la vista raccolta viene creata prima di essere presentata in questo modo. L'animazione dal basso verso l'alto viene eseguita utilizzando le modifiche alla proprietà constant
di NSLayoutConstraint e una chiamata a [view layoutIfNeeded]
in un blocco di animazione.Prevenzione dell'aspetto animato di UICollectionViewCell durante la presentazione di UICollectionView
Il problema è che, facendo le cose in questo modo, le celle appaiono in modo indesiderato: si espandono dall'angolo in alto a sinistra alla loro dimensione specificata. Vorrei che la vista della raccolta appaia e abbia tutte le celle già disposte nella dimensione e nell'aspetto finali.
Sono a conoscenza di cose come il metodo setAnimationEnabled:
di UIView, ma non riesco a trovare come e dove dovrei usarlo (se è la strada da percorrere).
Suppongo che il problema sia dovuto alle celle della vista raccolta che vengono aggiunte alla gerarchia della vista subito prima del blocco di animazione che contiene la chiamata a [superview layoutIfNeeded]
. Questo probabilmente porta UIKit a pensare che dovrebbe anche animare quelle modifiche al layout. In tal caso, probabilmente la soluzione potrebbe essere qualcosa lungo il percorso di esclusione dall'animazione, modifiche specifiche alla gerarchia della vista.
esecuzione in alcuni bug simili nella mia richiesta - per Ad esempio, quando lo avvio in simulatore l'intera schermata dell'app si espande dall'angolo in alto a sinistra e alcune parti del testo a volte "saltano" fino all'angolo sinistro della loro superview e quindi si animano al loro posto. Allo stesso modo faccio diverse animazioni con vincoli in diverse parti della mia app. Gradirei una risposta a questa domanda :) –