Quando si utilizza moveRowAtIndexPath:toIndexPath:
per spostare un UITableViewCell
, sto vedendo un problema tecnico quando si utilizza un'animazione estimatedRowHeight
e UITableViewAutomaticDimension
quando la cellula si anima da uno stato visibile a uno stato non visibileUITableViewCell animazione bug in `moveRowAtIndexPath: toIndexPath:` durante l'utilizzo di `` estimatedRowHeight` e UITableViewAutomaticDimension`
Il problema scompare se imposto esplicitamente l'altezza delle celle implementando tableView:heightForRowAtIndexPath:
. Il problema viene visualizzato solo quando i percorsi dell'indice di origine e di destinazione sono visibili e non visibili, rispettivamente. Quando la cella si sposta su un altro percorso dell'indice visibile, l'animazione si comporta come previsto.
ho creato un progetto di esempio per illustrare l'effetto: https://github.com/timarnold/Table-Cell-Sizing-Bug
http://www.openradar.me/19156703
Modifica
@rdelmar sottolineato che la mia domanda non chiede in realtà una domanda.
Qualcuno sa un modo per aggirare questo bug e correggere questo comportamento? O sto facendo qualcosa di sbagliato?
Modifica 2014-12-08
ho usato uno dei miei biglietti supporto degli sviluppatori Apple fornite avere informazioni riguardo questo problema con Apple. Hanno confermato che si trattava di un bug (visitare http://www.openradar.me/19156703 per duplicare) e non ha fornito soluzioni alternative.
Sai come risolvere il problema, quindi qual è la tua domanda? Penso che questo sia un caso di "ottieni quello per cui paghi" (la paga è tempo e complessità del codice). Questo, e i problemi con lo scorrimento su un determinato indexPath sono la conseguenza del modo in cui vengono utilizzate le altezze stimolate, quindi non penso che sia possibile correggerlo (sarà interessante vedere se Apple può risolverlo senza sacrificare il vantaggio di velocità di usando altezze stimate). Probabilmente potresti minimizzare l'effetto fornendo una stima più accurata delle tue altezze (sebbene ciò non sia di grande aiuto se hai altezze molto diverse). – rdelmar
Beh, non è tanto una questione in quanto è una documentazione del problema e una richiesta di possibili soluzioni alternative (suppongo che la mia richiesta dovrebbe essere più esplicita, modificherà la domanda). Penso che sia giusto classificare questo comportamento come un bug, tuttavia, dal momento che il progetto da riprodurre è abbastanza semplice e utilizza tutti i componenti e le funzionalità di magazzino. –
Non so se lo definirei un bug, o solo la conseguenza del compromesso tra velocità e correttezza che Apple ha fatto. È una tecnica che funzionerà per alcuni casi, ma non per tutti. Penso che l'unico modo per aggirare sia calcolare le altezze in modo "vecchio stile" - spero di sbagliarmi, perché le nuove celle auto dimensionanti sono grandi quando funzionano. – rdelmar